java - 在 AWS lambda 中使用 Dagger 并定期刷新模块
问题描述
我有一个使用 AWS Lambda 部署的无服务器应用程序。我使用 java8 作为我的语言,因为我也使用 Dagger 进行 DI。我正在调用的依赖项之一有多个我可以使用的端点(它具有多个端点的概念以确保可用性)。
现在,此应用程序需要使用地理位置接近的端点调用下游服务。我有一个方法可以根据地理距离返回最近的端点。我试图了解如何让 Dagger 模块定期“刷新”,以便它能够将其重定向到正确的端点?我在下面有一些相关代码来说明用例。
@Provider
@Singleton
public MyDownstreamClient downstreamClient() {
String endpointUrl = getClosestEndpoint();
return MyDownstreamClient.builder()
.endpoint(endpointURL) <-- This will change often based on the closest endpoint
.arguments(someArguments)
.build();
}
现在,我试图了解如何动态生成此 endpointURL。我在这里感到困惑的是,由于不是在每个 API 调用/请求上都调用 Dagger 提供程序,它会选择相同的端点。我研究了在我的实际业务逻辑中实例化客户端的想法,这似乎太昂贵了。
我试图了解是否有一种方法可以强制 Dagger 模块以某种方式定期刷新?有这种可能吗?
解决方案
推荐阅读
- bash - .gitignore 默认情况下将全部黑名单和手动白名单模式不起作用
- git - git-lfs:如何强制安装 git lfs?
- visual-studio - UWP 商店应用程序过期证书未由“将应用程序与商店关联”更新
- shell - 如果其他条件匹配语句在 jenkinsfile 的外壳中不起作用
- c - “__schedule”函数中的“current”和“prev”有什么区别,为什么不直接使用current呢?
- node.js - 如何在 .ejs 模板中显示错误
- php - 为什么 Jetstream 无法在我的 PC 上的 laravel 8 上安装
- javascript - 尝试使用 rpc.query 将数据从 javascript 发送到 python POS odoo
- firebase - 如何使用 ListView.builder 获取某个集合的特定 Firestore 文档
- python-3.x - 简单代码中的 type() 函数 SyntaxError