Django:x天后发送电子邮件

时间:2012-04-02 19:20:40

标签: django cron

在我的Django项目中,用户可以注册免费试用,但如果他们未在15天内完成购买,则他们的帐户将被锁定,直到他们完成购买为止。 13天后(即48小时内或到期日)我希望发送一封电子邮件给注册用户提醒他/她购买。

目前,我设置了一个cron作业,每天运行并检查所有试用帐户,如果注册日期和当前日期相隔2天,如果是,我会发送电子邮件。

我想知道是否有一个更优雅的解决方案来做到这一点?

1 个答案:

答案 0 :(得分:0)

如果你不想搞乱你的cron文件,你应该看看Celery,一个用Python编写的异步任务队列。它最初是用Django创建的,但后来被打破into a separate package。您想要做的是设置Celerybeat schedule,如下所示:

CELERYBEAT_SCHEDULE = {
    "purchase-reminder": {
        "task": "accounts.tasks.remind",
        "schedule": timedelta(hours=24),
    },
}

这将每24小时调用一次任务(读取:函数)accounts.tasks.remind