gpt4 book ai didi

java - 在Java中通过AKKA并发调用外部REST API

转载 作者:行者123 更新时间:2023-12-02 12:20:19 32 4
gpt4 key购买 nike

我正在努力通过API从Tesla Server获取汽车信息

。我想同时执行此操作。即使用 AKKA 参与者并行获取多辆车的信息

My Approach:

(1) 首先获取汽车总数。

(2) 创建与汽车数量相等的参与者。

(3) 每个 Actor 内部调用 Rest API 并行获取汽车信息。即每个 Actor 都会获得包含汽车 ID 的 url。

我的方法正确吗?

具体来说,在第 3 点中,我使用 com.ning 中的 AsyncHttpClient 调用每个 Actor 内的 Tesla 服务器。在每个 actor 中使用 AsyncHttpClient 是否可以确保每个 actor 将请求异步发送到服务器而不阻塞其他 actor?

如果需要,将提供更多信息。我是 AKKA 的初学者。查了很多帖子,但找不到我想要的内容。

最佳答案

特别是对于第 3 点,只要您在 actor 中使用基于 Future 的 API,actor 就不会阻塞。

一般来说,如果不知道为什么选择每辆车使用一个 Actor ,就很难详细介绍您的方法。

考虑这个问题:为什么不能简单地创建一个 URL 的 listOfCars: List[String] 并使用 Future.traverse(listOfCars)(downloadCarDataForUrl _)

最后,我不知道 AsyncHttpClient 的行为如何,但我会仔细检查,如果您有数千辆汽车的列表,AsyncHttpClient 不会同时下载所有汽车其中...如果是这种情况,您可能会很快被 api 提供商阻止。如果这成为一个问题,您可以查看 akka-http,它仅使用与特定主机的有限数量的连接。

关于java - 在Java中通过AKKA并发调用外部REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45831078/

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