Celery在一个月后未能执行任务



我的程序每天运行特定的任务,这些任务由django-celebeat设置。最近,我注意到这些任务没有执行,所有更改都是通过重置supervisorctl配置的celeb服务来完成的。

command=/opt/taskjo/taskjo-venv/bin/celery -A taskjo worker --pool=gevent --autoscale 4,2 -B  -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler --loglevel=INFO

我添加了这些项目

--pool=gevent --autoscale 4,2

日志中的新错误

Traceback (most recent call last):
File "/home/ubuntu/venv/lib/python3.5/site-packages/billiard/pool.py", line 1224, in mark_as_worker_lost
human_status(exitcode)),
billiard.exceptions.WorkerLostError: Worker exited prematurely: exitcode 0.

最近,我在一个有6个RAM的服务器上运行了4个odoo服务,大量RAM被占用。

发生了什么:Celery发送了几个任务,但它无法完成,当它被重置时,所有任务都完成了。

你有解决方案吗?

WorkerLostError:Worker过早退出:关闭Worker#273 时退出代码0

WorkerLostError:Worker过早退出:信号15(SIGTERM(#6291

问题已经解决工作步骤:

  1. 检查服务器的RAM(它几乎已满98%(
  2. 芹菜配置(由于工作人员的数量,大约有1GB的RAM被占用(
  3. 关闭多个服务并更改Celery的配置

因此,它已经工作了好几天没有问题。

以下配置已被替换:

[program:celery]
directory=/opt/taskjo/taskjo
command=/opt/taskjo/taskjo-venv/bin/celery -A taskjo worker -B  -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler --loglevel=INFO
;user=taskjo
;numprocs=1
stdout_logfile=/opt/taskjo/logs/celery/worker-access.log
stderr_logfile=/opt/taskjo/logs/celery/worker-error.log
stdout_logfile_maxbytes=50
stderr_logfile_maxbytes=50
stdout_logfile_backups=10
stderr_logfile_backups=10
autostart=true
autorestart=true
startsecs=10
; Need to wait for currently executing tasks to finish at shutdown.
; Increase this if you have very long running tasks.
stopwaitsecs = 600
; Causes supervisor to send the termination signal (SIGTERM) to the whole process group.
stopasgroup=true
; Set Celery priority higher than default (999)
; so, if rabbitmq is supervised, it will start first.
priority=1000

最新更新