首先,我知道这个问题:
我想知道的是,Gearman 还是这样吗?我计划将一批图像 URL 从 PHP Web 应用程序发送到 gearman 工作器(也是用 PHP 编写的;我们称之为“主工作器”)以进行异步处理。然后,该工作人员将为每个图像提交一个单独的任务(通过 addTask()),调用 runTasks() 并等待任务完成,同时侦听异常,累积错误消息并更新整体作业状态。
虽然我完全可以使用 jobStatus() 调用从 Main Worker 检索整体状态,然后只说当返回 [false, false, 0, 0] 时所有图像都已处理,我绝对需要能够通知用户某些图像无法从其各自的 URL 检索或存储在服务器上。
我想我总是可以将自定义数据存储在 memcache 中,然后从网络应用程序中检索它,但它对我来说似乎“更脏”......
我不想得到任何结果,因为从我在php.net上的手册中看到的,即使是异常处理也只能在同步提交任务时完成,更不用说自定义数据检索了。我只是希望可能有一些我想念的东西。我没记错,我们使用的是带有 libgearman6 (v 0.27) 和 PHP 5.3.10 的 Ubuntu Server 12.04。gearman 扩展的版本是 1.0.2。我认为数据库在这里无关紧要,因为我不会在任何一个工人中使用它。而且我认为我们现在没有使用持久队列。