我是多处理模块的新手,我对此有一个疑问。
我使用Gunicorn作为wsgi来运行我的烧瓶应用程序。据我所知,gunicorn使用工作人员(基于cpu内核)以并行方式处理请求。但是我的烧瓶应用程序中有一个很重的过程,我想使用多进程模块来提高响应时间,但是每次我打电话时:
multiprocessing.Process(target=func, args=[arg1..])火鸟重新启动一名工人,并使响应时间更长。
有什么问题,使用多处理模块在一个烧瓶应用程序运行在枪?
编辑->>
当工作人员启动时,它的Id将在我的日志文件中写入。
这是我的密码。我在商店里有400件商品:
from multiprocessing import Queue , Process
queue_stores = Queue()
list_process = []
def heavy_func(id , queue) :
# Do something
queue.put(resp)
for store in stores :
proc = Process(target=heavy_func, args=[store.id,queue_stores ])
for proc in list_process :
proc.start()
for procin list_process :
proc.join()
while not queue_stores.empty() :
df_final = df_final.append(queue_tiendas.get(), sort=False)当调用proc.start()时,我的日志文件开始编写新的id工作人员。我不明白为什么。
发布于 2021-07-07 04:48:26
Gunicorn和multiprocessing是多处理模块,当您试图在单个进程中调用多个进程时,它可能会造成麻烦。使用multiprocessing.dummy代替
https://stackoverflow.com/questions/66996485
复制相似问题