我正在寻找一个可以支持以下场景的排队系统:
- 客户添加了一项工作 - 检查特定 url (URL1) 有多少 Facebook 喜欢;
- 客户端添加另一个工作 - 检查 URL2 的相同信息;
[……]
一个工作人员从队列中挑选 1 到 50 个工作(url)(例如,如果只有 5 个 - 它挑选 5 个,如果有 60 个 - 挑选 50 个,将其他工作留给另一个工作人员),并向 Facebook 发出请求API(允许每个请求有多个 url)。如果成功,所有作业都会从队列中取出,如果失败 - 所有作业都会保留。
我正在使用 PHP,我研究了Gearman,Beanstalkd,但没有找到任何类似的功能。是否有任何(免费)排队系统可以支持这种“批量出队”?
或者,也许,任何人都可以提出处理此类问题的替代方法?我已经考虑在排队系统之外保留一个“要检查”的 url 列表,然后将它们添加到最多 N 个项目的捆绑中,并使用每 X 个周期运行的 cron 作业。但这有点建立自己的队列,这违背了整个目的,不是吗?