gpt4 book ai didi

django - 在 Heroku 上运行的 Celery Beat 进程发送任务两次

转载 作者:行者123 更新时间:2023-12-02 09:38:06 27 4
gpt4 key购买 nike

我有一个定期任务被发送两次。我一直无法找出原因。

Celery 配置(部分):

app.conf.CELERYBEAT_SCHEDULE = {
'email-todays-todos': {
'task': 'apps.todo.tasks.email_todays_todos',
'schedule': crontab(hour='7', minute='30')
},
'send-onboarding-emails': {
'task': 'apps.home.tasks.send_onboarding_emails',
'schedule': crontab(hour='13', minute='0')
},
}

第一个定期任务 (email_todays_todos) 发送一次没有问题,但第二个定期任务 (send_onboarding_emails) 发送两次。

我的程序文件:

web: gunicorn appname.wsgi
worker: celery -A appname worker -l info
beat: celery -A appname beat

以下是日志中发生的情况:

Mar 10 11:00:00 appname app/beat.1:  [2014-03-10 13:00:00,162: INFO/MainProcess] Scheduler: Sending due task send-onboarding-emails (apps.home.tasks.send_onboarding_emails) 
Mar 10 11:00:00 appname app/beat.1: [2014-03-10 13:00:00,101: INFO/MainProcess] Scheduler: Sending due task send-onboarding-emails (apps.home.tasks.send_onboarding_emails)
Mar 10 11:00:00 appname app/worker.2: [2014-03-10 13:00:00,259: INFO/MainProcess] Received task: apps.home.tasks.send_onboarding_emails[a4dcb6ff-fa40-4a9c-beba-21c62b0bd5e5]
Mar 10 11:00:01 appname app/worker.1: [2014-03-10 13:00:00,450: INFO/MainProcess] Received task: apps.home.tasks.send_onboarding_emails[f97c546d-5876-4152-8344-96bd05c546b1]
Mar 10 11:00:05 appname app/worker.2: [2014-03-10 13:00:05,564: INFO/MainProcess] Task apps.home.tasks.send_onboarding_emails[a4dcb6ff-fa40-4a9c-beba-21c62b0bd5e5] succeeded in 5.00695208088s: True
Mar 10 11:00:07 appname app/worker.1: [2014-03-10 13:00:05,455: INFO/MainProcess] Task apps.home.tasks.send_onboarding_emails[f97c546d-5876-4152-8344-96bd05c546b1] succeeded in 4.76427294314s: True

我有 2 个为工作进程运行的测功机和 1 个为节拍进程运行的测功机。

这里有什么想法吗?

最佳答案

我也有类似的问题。不确定这是否适合您,但我最终从我的设置文件中删除了 CELERYBEAT_SCHEDULE ,而是在我的tasks.py 文件中创建了一个定期任务。只需像这样装饰您想要运行的函数即可:

@periodic_task(run_every=timedelta(秒=30))

我每 30 秒运行一次,但您可以将其更改为您想要的任何间隔。

关于django - 在 Heroku 上运行的 Celery Beat 进程发送任务两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22314592/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com