Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 异步处理与Laravel_Php_Laravel_Asynchronous - Fatal编程技术网

Php 异步处理与Laravel

Php 异步处理与Laravel,php,laravel,asynchronous,Php,Laravel,Asynchronous,我们有从Laravel后端到多个提供商的API调用,用于获取航班票价/可用性数据。来自这些提供者的响应在不同的时间段之后出现。一个提供商可能会在2秒内给我们一个响应,另一个提供商可能会在5秒内给我们一个响应,依此类推。客户最终会等待所有提供商将数据返回到后端。作为一种解决方法,现在我们从前端向Laravel发送多个请求—每个提供者一个请求。因此,只要我们从一家提供商那里得到响应,客户就开始看到数据。这种方法有一些问题——如果我们想再添加一个提供者,我们需要在UI级别进行代码更改。如果我们想启用/

我们有从Laravel后端到多个提供商的API调用,用于获取航班
票价/可用性
数据。来自这些提供者的响应在不同的时间段之后出现。一个提供商可能会在2秒内给我们一个响应,另一个提供商可能会在5秒内给我们一个响应,依此类推。客户最终会等待所有提供商将数据返回到后端。作为一种解决方法,现在我们从前端向Laravel发送多个请求—每个提供者一个请求。因此,只要我们从一家提供商那里得到响应,客户就开始看到数据。这种方法有一些问题——如果我们想再添加一个提供者,我们需要在UI级别进行代码更改。如果我们想
启用/禁用
提供程序,同样需要在UI上更改代码。我们在UI上使用Ionic,在后端使用Laravel。解决这个问题的最佳方法是什么?当我们在后端收到响应时,我们希望继续将数据推送到前端。UI层应该能够一直接收数据,直到后端显示“完成,不再有数据”。web套接字和Laravel队列的组合?这只是基于谷歌的猜测。可以考虑从Laravel切换到另一种技术。

“如果我们想再添加一个提供商,我们会在UI级别更改代码”…为什么?后端不能向前端传递一个提供者列表(从其配置中)以及如何联系提供者,并且它可以只运行该列表,然后根据配置处理每个提供者吗?我不明白你为什么需要对它们进行硬编码,尤其是。或者,对于更后端的解决方案,这是否回答了你的问题。您仍然需要等待所有这些操作,然后才能获得对用户的响应,但由于这些操作是并行完成的,因此速度可能会快得多。第三种选择是在后端运行所有请求(同步或异步),但在每个请求到达时使用websocket将结果传输到UI。“最好的”一个取决于你的具体情况(许多我们不知道的小细节),因此这个问题并不是真正可以确定的答案。一旦您了解了一些可能的方法,您就可以根据所有功能性和非功能性需求对它们进行更详细的评估。但是我们不能直接告诉你应该使用哪一个。你可以考虑使用WebSoCube()来保持前端和后端之间的连续连接。@ AdysS-我们可以从后端发送列表,只希望避免一个往返。根据到目前为止的评论,WebSocket似乎是前进的方向。