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