如何在Heroku上定期运行Django任务?

时间:2017-02-13 22:18:59

标签: django heroku celery worker periodic-task

我使用1个web dyno在Heroku上部署了一个Django应用程序,基本上只是托管一个人们可以注册的网站,然后该应用程序可以向这些人发送电子邮件。

现在我手动发送所有电子邮件;我每次都在heroku服务器上进入django shell,并调用a.send_customized_email()

之类的函数

我想知道如何定期发送电子邮件,而不是每次都在后端编写命令编码?

我听说过Django芹菜,但是如何整合呢?我应该点燃另一个dyno吗?配置文件应该是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

settings.py文件中,您可以使用

from celery.schedules import crontab

app.conf.beat_schedule = {
    # Executes every Monday morning at 7:30 a.m.
    'add-every-monday-morning': {
        'task': 'a.tasks.send_customized_email()',
        'schedule': crontab(hour=7, minute=30, day_of_week=1),
        'args': (16, 16),
    },
}

在您的tasks.py文件中,您可以指定send_customized_email()是什么