gpt4 book ai didi

facebook - 异步和并行处理

转载 作者:太空宇宙 更新时间:2023-11-03 23:43:07 25 4
gpt4 key购买 nike

关于这个问题已经有很多帖子了,但我仍然无法解决这个特定问题。

如果我必须调用三个外部网站:Facebook、Twitter 和 Instagram,并且我以异步并行方式启动这三个网站,并且挂起 20 秒等待 Facebook 响应,我不确定会发生什么。 Twitter 和 Instagram 的调用是否会在调用 Facebook 之前开始运行并可能完成,或者整个用户线程是否会暂停,直到下一轮事件循环以及另一个用户调用完成?对我们来说似乎是后者。或者整个线程是否会停止并等待?

根据请求,这里是代码的精简版本。 Service_requests 是调用 Facebook、Instagram 和 Twitter 的函数数组。这里还发生了很多其他事情,但其实质非常简单。

 Async.parallel(service_requests, function (err, results)
{
if (err) { next(err); return; }

var articles = [];

for (var i = 0; i < results.length; i++)
{
articles = articles.concat(results[i]);
}

next(null, articles);
});

最佳答案

当您向服务发出并行请求时,它们都会“同时”发生。因此,如果 facebook 花了 20 秒返回,twitter 花了 15 秒,instagram 花了 25 秒,那么从您发起所有请求起,您将在 25 秒内获得所有数据。

此外,当 Node 等待这些服务的响应时,它可以自由地服务其他请求。

事件循环不会停止并等待响应,如果存在其他工作,它会继续执行其他工作。

当所有 3 个服务都响应数据时,异步库将使用结果调用您的最终回调。

关于facebook - 异步和并行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19105683/

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