【问题标题】:Schedule emails on a specific time using Django and celery使用 Django 和 celery 在特定时间安排电子邮件
【发布时间】:2022-01-06 06:40:36
【问题描述】:

这是我正在寻找的用例:

  • 用户将在我的应用程序上注册
  • 这是一个笔记制作和剩余应用程序
  • 在创建剩余用户时,将输入我的应用程序希望当时向用户发送电子邮件的时间
  • 我必须用芹菜做同样的事 我阅读了几篇帖子和堆栈溢出答案,但没有得到相同的正确答案。

我的应用程序是用 Django 编写的。

【问题讨论】:

    标签: python python-3.x django celery django-celery


    【解决方案1】:

    当用户创建新提醒时,只需在 celery 中安排发送电子邮件任务。请注意,这是一个简单的解决方案,但它会使用户难以在创建通知时间后更改通知时间。

    来自answer

    要在指定的日期和时间执行任务,您可以在调用任务时使用 apply_async 的 eta 属性,如 docs 中所述

    your_task.apply_async(kwargs={}, eta="your_send_time")

    另一种解决方案是每 1 分钟运行一次任务,如果有任何电子邮件要发送,它将检查数据库。你不必为此使用芹菜。类似 Cron 的库应该可以解决问题。例如schedule libdjango-cronDjango Commands


    编辑:this guy 说你不应该在 Django 中使用 dbader/schedule。

    【讨论】:

    • 谢谢你的工作
    猜你喜欢
    • 2013-12-24
    • 2019-01-08
    • 2021-08-04
    • 2014-05-01
    • 2020-02-23
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 2019-06-04
    相关资源
    最近更新 更多