如何推迟/推迟Gearman的工作?

时间:2011-12-25 09:05:56

标签: gearman task-management python-gearman

我正在使用 gearman 来同步不同服务器上的数据。我们有 1个主服务器,例如10个本地服务器。让我来描述一种可能的情况。比如说,gearman开始工作,完成了5个工作,同步了5台服务器上的数据。在开始下一个工作时,比如说,我们失去了与服务器的连接,现在它无法使用。根据齿轮手的逻辑,它一次又一次地重试。因此,剩余的作业(对于服务器7,8,9,10)将在第6个未完成之前执行。最好的解决方案是推迟工作并将其置于队列末尾并继续工作7-10。

如果有人知道该怎么做,请发帖。

PS:我正在使用python。

2 个答案:

答案 0 :(得分:0)

Gearman作业可以并行或串行运行。您应该使用并发作业(每个服务器一个),而不是使用单个作业。

答案 1 :(得分:0)

GearmanClient.submit_multiple_jobs(jobs_to_submit, background=False, wait_until_complete=True, max_retries=0, poll_timeout=None)

这个功能会有所帮助。只需让background = True。

This link也会有所帮助。