我在 centos 6.5 机器上运行以 redis 作为代理的 celery,配置如下:
app.conf.update(
CELERY_ENABLE_UTC=True,
CELERY_SEND_TASK_SENT_EVENT=True,
CELERY_ACCEPT_CONTENT=['msgpack', 'json', 'application/x-python-serialize'],
CELERY_TASK_SERIALIZER='msgpack',
CELERY_RESULT_SERIALIZER='msgpack',
CELERYD_PREFETCH_MULTIPLIER=1)
问题是,即使队列中没有任务,也根本没有事件任务,内存也不会释放
任何想法都可能有所帮助!
最佳答案
通常,Unix 进程在不再需要时不会系统地将它们从操作系统获取的内存返回给操作系统。所以随着时间的推移,进程的内存使用量会增加。
如果您对没有实际的编码或配置问题影响您的工作人员感到满意,您可以定期重新启动他们。
关于python - celery worker 在任务完成后不释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38992930/