芹菜,忽略过期的任务?

时间:2014-01-27 03:59:03

标签: task celery

当django服务器正在运行且芹菜未运行时 生成周期性任务。

当我恢复芹菜时,我看到过去的任务已经完成 如果过期,我可以将特定任务标记为不运行吗?

1 个答案:

答案 0 :(得分:0)

Task.apply_asyncexpires选项似乎适合您。

例如,您的任务可能如下所示:

@periodic_task(run_every=timedelta(seconds=15), expires=15)
def update_something():
    # do something

这是一个简单的解决方案。

可以采用更多可定制的解决方案。您可以将任务的结果保存到缓存(例如,在Redis中),并且当此任务的结果在缓存中时,所有新任务都只返回缓存的值。此解决方案非常灵活,因为您可以将所有信息存储在缓存中以决定下一步要做什么(例如从缓存中获取值或重新运行任务)。