【问题标题】:How to delay/postpone Gearman job?如何延迟/推迟 Gearman 的工作?
【发布时间】:2012-01-27 13:46:42
【问题描述】:

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

如果有人知道怎么做,请张贴。

PS:我正在使用 python。

【问题讨论】:

    标签: gearman task-management python-gearman


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      GearmanClient.submit_multiple_jobs(jobs_to_submit, background=False, wait_until_complete=True, max_retries=0, poll_timeout=None)
      

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

      This link 也会有所帮助。

      【讨论】:

      • 这种情况下进程会被阻塞,不是吗?
      • 是的,我只是给你举个submit_multiple_jobs方法的例子。如果你设置 background=True,你可以继续下一行代码。
      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 2012-04-16
      • 2011-08-06
      • 1970-01-01
      • 2018-04-06
      • 2017-01-27
      相关资源
      最近更新 更多