擅长:python、mysql、java
<p>您可以运行多个芹菜节拍实例,任务将不会重复。</p>
<p>看看芹菜.beat.Scheduler类,特别是reserve()函数。调度程序将保留一个任务,然后将其提交给网格执行。这将防止芹菜殴打的另一个实例提交相同的任务。</p>
<p>我们使用MongoDB作为计划任务的后备存储。下面是一个示例文档,显示任务已由一个调度程序保留。</p>
<pre><code>{
"startdate": "2015-07-06 00:00:00",
"task": "cobalt.grid.tasks_facts.task_add",
"enddate": "2018-01-01 00:00:00",
"args": "[13.0, 42.0]",
"enabled": "True",
"last_run_at": "2015-08-13 15:04:49.058000",
"interval": "{u'every': u'1', u'period': u'minutes'}",
"relative": "False",
"total_run_count": "12",
"kwargs": "{}",
"reserved": "compute2:25703",
"_id": "ObjectId(55ccaf7784a3e752e73b08c2)",
"options": "{}"
}
</code></pre>
<p><a href="http://celery.readthedocs.org/en/latest/reference/celery.beat.html#celery.beat.Scheduler" rel="nofollow">http://celery.readthedocs.org/en/latest/reference/celery.beat.html#celery.beat.Scheduler</a></p>