定期在带有刷新模块的AWS Lambda中使用Dagger

时间:2018-12-17 22:32:20

标签: java aws-lambda dagger

我有一个使用AWS Lambda部署的无服务器应用程序。我使用java8作为语言,也使用Dagger for 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模块定期进行某种形式的刷新?那有可能吗?

0 个答案:

没有答案