芹菜执行计划任务一百次

时间:2015-03-21 17:37:06

标签: django ubuntu celery django-celery

我已经在我的django应用程序中配置芹菜,以便每天早上运行任务。该任务只是向一组用户发送电子邮件。问题是同一封电子邮件被发送了几百次!!

这是我的芹菜配置:

BROKER_URL = 'redis://127.0.0.1:6379/0'
BROKER_TRANSPORT = 'redis'
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    'alert_user_is_not_buying-everyday-at-7': {
        'task': 'opti.tasks.alert_users_not_buying',
        'schedule': crontab(hour=7, minute=0),
    },
}

任务是:

@app.task(bind=True)
def alert_user_is_not_buying(self):
    send_mail_to_users()

我使用这些命令来启动工作并击败(我使用主管):

exec celery --app=opti beat --loglevel=INFO
exec celery --app=opti worker --loglevel=INFO

我相信我的send_mail_to_users()方法没问题,看起来电子邮件每30秒发送一次......

缺少什么?

1 个答案:

答案 0 :(得分:1)

您的CELERYBEAT_SCHEDULE设置可能未使用,因为您已将CELERYBEAT_SCHEDULER设置为使用DatabaseScheduler。该调度程序是如何配置的?我想是问题的来源。