我recently learned使用python的多处理包Pool
要求你调用:
pool.close()
pool.join()
当你完成以释放那些进程中用于状态的内存时。否则,它们会持续存在,你的计算机将填满python工作;他们不会使用CPU,但会占用内存。
我的问题是:
我现在使用celery
进行并行化(而不是Pool
- 我正在Django WSGI应用程序中运行,Pool
使得很难阻止所有用户在一次,这将使服务器崩溃。)
我注意到与celery
非常相似的现象:我在后台运行的6个芹菜进程开始吞噬内存。这是正常的还是相当于调用close()和join()我可以用来告诉celery
任务我已经检索到结果而不再需要它了?
非常感谢你的帮助。
奥利弗