在我的Django项目中,用户可以注册免费试用,但如果他们未在15天内完成购买,则他们的帐户将被锁定,直到他们完成购买为止。 13天后(即48小时内或到期日)我希望发送一封电子邮件给注册用户提醒他/她购买。
目前,我设置了一个cron作业,每天运行并检查所有试用帐户,如果注册日期和当前日期相隔2天,如果是,我会发送电子邮件。
我想知道是否有一个更优雅的解决方案来做到这一点?
答案 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
。