Kru*_*rut 5 elixir phoenix-framework
我需要像 PubSub 这样的东西,但不是向所有订阅者广播,而是只将消息发送给 1 个订阅者(最好根据接收缓冲区中的消息数量自动选择订阅者,越低越好)。
我正在尝试使用受控数量的分布式工作人员发送数十万个 http 请求。
为了解决这个问题,我首先要尝试的是让工作人员拉取请求,而不是将请求推送给他们。
因此,我需要进行全局注册Agent,其中包含要使用用于添加和检索请求的 API 执行的 http 请求列表。worker(Task, ...)然后,我将使用 a启动 N 个工作人员,Supervisor而one_for_one不是在这个阶段添加 poolboy。每个工作人员都会请求Agent一个 http 请求来发出并执行任何必要的工作,然后正常终止,由主管重新启动并请求一个新的 url。
工作人员从代理中的列表中提取 http 任务而不是将其推送给它们,这将确保在有工作要做时可用的工作人员始终处于忙碌状态。
如果解决方案看起来不错,我会考虑添加 poolboy。您需要小心主管选项,这样一堆导致工作人员崩溃的不良网址不会触发主管关闭其他所有内容。