1

我正在寻找在 Web 集群环境中可靠地执行任务(仅在某个日期/时间执行一次)的方法:例如,在初始注册后 7 天后向用户发送电子邮件提醒。我知道使用 cron/django-cron/django-chronograph 等来实现这一点的方法,但到目前为止我发现的所有东西似乎都是为单服务器场景设计的。

我想避免由于在多台服务器上运行相同的作业而发送重复的提醒,到目前为止,似乎在 Web 集群中使用锁定、过期超时等来汇总您自己的基于数据库的解决方案确实是唯一的选择。是否有任何现有的解决方案可以在 Web 集群环境中运行良好?

4

1 回答 1

1

您可以使用Celery Periodic Task

from datetime import timedelta

CELERYBEAT_SCHEDULE = {
    'add-every-30-seconds': {
        'task': 'tasks.add',
        'schedule': timedelta(seconds=30),
        'args': (16, 16)
    },
}

CELERY_TIMEZONE = 'UTC'
于 2015-09-24T13:40:06.423 回答