我正在寻找在web集群环境中可靠地执行任务(仅在特定日期/时间执行一次)的方法:例如,在初始注册7天后向用户发送电子邮件提醒。我知道使用cron/django-cron/django-chronograph等实现这一点的方法,但到目前为止我发现的所有东西似乎都是为单服务器场景而设计的。
我希望避免由于在多个服务器上运行相同的作业而发送重复的提醒,到目前为止,似乎在web集群中使用锁定、过期超时等基于数据库的解决方案是唯一的选择。有没有任何现有的解决方案可以在web集群环境中很好地工作?
发布于 2015-09-24 21:40:06
您可以使用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'https://stackoverflow.com/questions/11078619
复制相似问题