繁体   English   中英

我是否应该使用Laravel队列来管理应用程序中的线程

[英]Should I use Laravel Queues to manage threads across my application

我正在寻找打多个第三方API来收集用户搜索查询的信息。 我正计划为每个要击中的API分派一个线程,以最大程度地缩短响应时间。 由于内存/ CPU问题,我还想限制我的应用程序可以在任何时候运行的线程数量。

由于我使用Laravel作为框架,因此我试图使用Laravel队列来完成此任务,但是似乎我可能无法从Job那里获得响应数据。

  • laravel队列是否是解决此问题的正确方法? 如果是这样,我如何侦听作业的状态并在作业完成后检索数据? 我发现有些事情会导致关闭工作,但是有些事情并没有为我带来好处。

这取决于。 如果要进行大量的API调用,特别是如果这些API调用可能非常慢的话,则作业队列和工作池可能是合适的。 但是,除非您确实确定需要,否则我将尽量避免使用所有架构。

首先,我将研究对外部API的异步请求,并尝试将整个过程保持在一个过程中。 Guzzle HTTP客户端库提供了一种非常友好的API,可以进行这种异步请求。

如果外部请求确实很多或很慢,则可以考虑使用队列。 但是在那种情况下,您正在考虑实现一堆逻辑来对所有作业进行排队,然后进行轮询直到完成(将反馈反馈给用户),最后返回合并的结果。 可能最终有必要这样做,但是我将从上面描述的更简单的实现开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM