2

我有多个客户将作业添加到我的 gearman 队列中。

这些作业是最终注定要批量上传到 SOLR 进行索引的文档

出于性能原因,我想从队列中获取多个作业并将它们以 1000 个文档的批次连接在一起。

我愿意使用 gearman cmd 工具,或者他们的任何 SDK

我一直在研究 PHP 扩展,唯一的选项 $worker->work() 是不够的。

我发现一个论坛帖子建议使用 grab_job() 但那是从 2009 年开始的,该方法似乎不再存在。

我是用错了齿轮人还是我错过了什么?

4

1 回答 1

1

您的 php 工作人员确实在工作之间持续存在。因此,您可以执行以下操作:以典型方式使用 $worker->work() - 我的意思是,一份工作 - 一次 work() 调用。在您的工作人员内部设置一个计数器并将所有工作负载保存到内部变量中。每 1000 个作业也执行您的批处理。

于 2013-11-15T06:04:12.373 回答