使用gearman正确实现作业队列,从子任务获取状态

时间:2014-04-11 14:19:17

标签: symfony gearman job-queue

我想要实现的目标:用户上传数据文件。它被添加到队列中,当轮到它时,它会创建许多并行任务,包括转换该文件中的行。无论何时用户想要,他都可以获得转换了多少行的状态(以%为单位)。

我决定和gearman一起去,因为将来将工作人员转移到其他服务器和东西是件好事。据我了解,在使用worker时应避免使用不必要的数据库连接,因此将状态存储在数据库中并不是一个可行的选择。

我尝试过这样的事情:控制器创建新的后台任务(文件处理),此任务调用较小的任务(转换,我使用后台实现并行),然后将最终结果上传到数据库。 Gearman事件监听器仅适用于非后台任务(至少在我试图附加它时)。

我应该获取所有任务并检查作业参数以将其链接到特定ID,还是可以以某种方式将其他参数传递给作业?

GearmanClient :: jobStatus需要工作句柄,我无法访问,因为它在一个请求中创建了后台进程,但在其他请求中需要。

对不起文字墙,谢谢你的帮助!

0 个答案:

没有答案