【问题标题】:Django: sending email x days laterDjango:x天后发送电子邮件
【发布时间】:2012-04-16 11:18:06
【问题描述】:

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

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

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

【问题讨论】:

  • 为什么不优雅?
  • 对我来说听起来像是一种非常标准的方式。
  • +1 到其他两个 cmets。除非您需要更高级的任务,否则 cronjob 听起来是最优雅的解决方案。
  • haha 这是我的第一个 Web 服务器项目并处理此类事情,所以我不确定这是否是正确的方法。非常感谢大家
  • 如果您愿意接受第 3 方解决方案,请使用 intercom.io。它可以让您根据不同的用户条件发送自动电子邮件。

标签: django cron


【解决方案1】:

如果您不想弄乱您的 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。

【讨论】:

    猜你喜欢
    • 2015-07-05
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2018-03-03
    • 2011-12-15
    相关资源
    最近更新 更多