Celery 周期性任务被多次执行

问题描述

我有一项计划在一天中的特定时间运行的 celery 任务。 问题是这个任务被多次执行,所以我至少收到了 2 到 3 次相同的电子邮件

@periodic_task(run_every=crontab(hour=7,minute=10))
def send_reminder_email_at_7():
    obj = Service()
    obj.send_email()
    return

在服务器上,我使用 gunicorn 和主管设置了项目 以下是celery和celery beat的配置

[program:proj_worker]
command=/home/ubuntu/venv/bin/celery -A baseproj worker -l debug
directory=/home/ubuntu/proj/
user=ubuntu
numprocs=1
stdout_logfile=/home/ubuntu/logs/celerylogs/proj_worker.log
stderr_logfile=/home/ubuntu/logs/celerylogs/proj_worker_err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
killasgroup=true
priority=998
[program:proj_beat]
command=/home/ubuntu/venv/bin/celery -A baseproj beat -l debug --scheduler django_celery_beat.schedulers:DatabaseScheduler
directory=/home/ubuntu/proj/
user=ubuntu
numprocs=1
stdout_logfile=/home/ubuntu/logs/celerylogs/proj_beat.log
stderr_logfile=/home/ubuntu/logs/celerylogs/proj_beat_err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
killasgroup=true
priority=998

以下是gunicorn配置

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/home/ubuntu/proj
ExecStart=/home/ubuntu/venv/bin/gunicorn --access-logfile /home/ubuntu/logs/gunicorn/gunicorn-access.log --error-logfile /home/ubuntu/logs/gunicorn/gunicorn-error.log  --workers 3 --bind unix:/home/ubuntu/proj/proj.sock baseproj.wsgi

[Install]
WantedBy=multi-user.target

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...