重新启动后,gearman会以完全相同的顺序执行作业吗?

时间:2016-11-03 06:05:29

标签: php queue amqp gearman mom

我使用gearman作为C ++应用程序和PHP应用程序之间的接口。我的工作依赖于订单。使用内存中队列,它们的执行顺序与添加它们的顺序相同(由1个工作人员进行)。我想坚持我的队列。 Gearman会按照崩溃或重启后添加的顺序执行持久队列中的作业吗?

1 个答案:

答案 0 :(得分:0)

实际上它确实如此。它会在它停止的地方继续,并尝试完成剩余的工作。根据您的项目和队列...您可能需要为实际失败的作业添加failafes。根据作业崩溃的位置,它可能已经写入数据(例如,数据库),但如果作业重新启动,则会重试。

官方文件的引用

  

如果作业服务器在这两个呼叫之间崩溃或重新启动   job,在下一个作业服务器启动期间重新加载作业。当。。。的时候   作业服务器启动时,会调用重播回调函数   模块,提供所有未完成的作业的列表。这是   用于填充要运行的作业的内部存储器队列。一旦   此重播完成后,作业服务器完成初始化   一旦工人连接,工作现在就可以运行了(队列应该   处于与坠毁时相同的状态。)