gpt4 book ai didi

php - PHP 编码理论 : Need to direct traffic for multiple queues (multiplexing)

转载 作者:可可西里 更新时间:2023-10-31 23:42:36 24 4
gpt4 key购买 nike

我正在为我们的员工整合一个界面,以上传他们需要行业统计信息的产品列表(目前一次手动上传一个)。
然后,每个产品都将通过网络服务 API 提供给我们的统计引擎。
我会回复的。 Stat 引擎将从我的 api 请求“下一个受害者”。

用户上传的每个列表将包含 50 到 1000 个产品,并且将是自己的队列。
目前,队列/列表可能每天大约添加(和通过完成删除)10-20 次。
如果成功,几个月后流量可能会增加到每天 700-900 个列表。

我们只是计划采用一种简单的循环方法来在队列之间均匀地引导流量。
多路复用器将从 List A 中获取最上面的项目,然后是 List B,然后是 List C 等等,直到循环回到 再次列出 A ... 请记住,可以随时添加/删除列表/队列。

我面临的问题只是概念化管理。
我考虑过将每个队列存储为一个平面文件并通过关系数据库 (MySQL) 管理轮换。想过反过来做。考虑使用完全平面文件还是完全关系数据库……总而言之,我很灵活。
无论如何,当我尝试无状态地将可变的参与者列表与循环旋转融合时,我的大脑只是 Steam 锁定(我刚结束一个短暂的假期,我认为我的大脑还没有回家;)

有没有人做过这样的事情?
你是怎么处理的?
如果让您重新来过,您会改进什么?

欢迎任何提示/建议/建议。

注意:由于来 self 们的统计引擎/工具的每个请求都会间隔很多秒,如果不是几分钟,我需要保持这个无状态。

最佳答案

当然,列表数据应该存储在数据库中。您的 PHP 端应该有一个显示系统状态的 View ,以及添加列表的表单。

由于每个请求都成为自己的队列,并且所有请求队列的优先级都被认为是相等的,因此理想的表数可能是三个。一个列出请求及其相对于另一个的优先级(以确定循环中的下一个)和处理状态,另一个列出内容(列表项)尚未处理的每个请求的列表,以及用于列出每个队列中的已处理项目的第三个表。

您还需要一个执行实际处理的脚本,它不是由用户请求驱动的,而是由定期执行的系统计划作业驱动的(节流到您想要的任何程度)。这当然也可以是 PHP。您可以在此处设置一次 10 个列表检查和更新。

处理过程是这样的:

  1. 从最高优先级队列中选择下一组最多 10 个项目。
  2. 处理它们,在它们完成时更新它们的数据库状态。
  3. 更新上述队列的优先级,使其现在是最低优先级。

如果添加新队列,它们将以最低优先级添加。

优先级可以用整数表示。

您的用户需要耐心等待他们的列表得到处理,然后才能查看或下载结果。您可以在您的 View 页面上为此设置一个自动刷新脚本。

关于php - PHP 编码理论 : Need to direct traffic for multiple queues (multiplexing),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11640172/

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