我的 django 中有一个 celery 计划任务,它在下午 4 点运行。该计划任务执行后,运行顺利,没有出现任何错误。昨天我的芹菜任务由于以下错误而失败了
Process "ForkPoolWorker-1" pid:41
exited with "exitcode 70"
Task handler raised error:
WorkerLostError('Worker exited
prematurely: exitcode 70 Job: 1.')`
我不知道为什么会出现这个错误。我正在使用
Django==3.2.4
celery==5.1.2
还显示一些折旧警告
version 6.0.0. Use the accept_content
instead
The 'CELERY_TIMEZONE' setting is
deprecated and scheduled for removal
in alternative=f'Use the
{_TO_NEW_KEY[setting]} instead')
任何人都可以帮我解决上述问题吗?我的芹菜任务不是一项长时间运行的任务。
大多数工作错误的发生是因为您的系统达到了内存限制,并且您的作业需要的内存超过了机器上的可用内存。您可以尝试以下一些解决方案:
max-tasks-per-child
配置设置为 1 以在每次任务后释放内存。示例:
celery -A default worker -l INFO --max-tasks-per-child=1 --concurrency=1
https://docs.celeryq.dev/en/stable/userguide/workers.html#concurrency https://docs.celeryq.dev/en/stable/userguide/workers.html#max-tasks-per-child-setting