gpt4 book ai didi

php - 支持作业批处理的排队系统(例如,一次为 1 个 worker 处理多个作业)

转载 作者:搜寻专家 更新时间:2023-10-31 21:42:12 24 4
gpt4 key购买 nike

我正在寻找可以支持以下场景的排队系统:

  • 客户添加了一项工作 - 检查特定 url (URL1) 有多少 Facebook 点赞;
  • 客户添加了另一项工作 - 检查 URL2 的相同信息;
  • [....]

  • 一名工作人员从队列中选择 1 到 50 个工作(网址)(例如,如果只有 5 个 - 它选择 5 个,如果有 60 个 - 选择 50 个,将其他工作留给另一个工作人员),并针对 Facebook API 发出请求(每个请求允许多个 url)。如果成功,所有作业都会从队列中取出,如果失败 - 所有作业都会保留。

我正在使用 PHP,我研究了 Gearman , Beanstalkd ,但没有发现任何类似的功能。是否有任何(免费的)排队系统支持这种“批量出队”?

或者,也许有人可以建议一种处理此类问题的替代方法?我考虑过在排队系统之外保留一个“待检查”URL 列表,然后将它们添加到最多 N 个项目的 bundle 中,并使用每 X 周期运行一次的 cron 作业。但这有点像是在构建您自己的队列,这违背了整个目的,不是吗?

最佳答案

我曾使用 Beanstalkd 一次获取 100 个推特名称,然后用它们调用一个 API。完成后,我删除了它们 - 但如果我愿意,我可以选择不删除部分(或全部)。

保留最初的 100 个(一次一个)是一个简单的循环,我将结果(作业 ID 和返回的数据)放入一个数组中。当我处理完负载(在本例中为 Twitter 屏幕名称)后,我删除了它们 - 但我本可以轻松地将它们释放回队列中。

关于php - 支持作业批处理的排队系统(例如,一次为 1 个 worker 处理多个作业),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com