【问题标题】:Run Celery task at user selected time在用户选择的时间运行 Celery 任务
【发布时间】:2017-02-20 09:38:27
【问题描述】:

我有一个 Django 应用程序,系统应该每天在特定时间发送一封电子邮件。目前我正在使用 Celery + Redis 在一天中的特定时间发送电子邮件。

我想允许用户设置发送电子邮件的后台任务必须运行的时间。实现这一目标的最佳方法是什么?我找不到用户设置这次的任何示例。

或者,我将允许用户选择必须发送电子邮件的时间。 9:00、10:00 等。然后我将任务设置为每小时运行一次,并检查是否有任何用户选择了该时间。这似乎不是最干净的方法。还有其他建议吗?

我的应用在 Heroku 上运行,不确定这是否会有所不同

【问题讨论】:

  • 我不认为 Celery 支持你想要的。您可能需要实现自定义解决方案,例如让 celerybeat 每分钟运行一个任务,并在任务中检查哪些用户选择了该时间进行发送,然后发送给他们。
  • 谢谢安东尼,我想我可能不得不走那条路

标签: django celery


【解决方案1】:

您可以查看django-celery,它有管理界面和celerybeat 的调度程序,允许从数据库中挑选任务并安排它们。

因此您可以创建某种形式的用户界面并创建PeriodicTask 实例。

【讨论】:

    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 2020-05-24
    • 2020-03-20
    • 2015-10-24
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多