【问题标题】:Cacheable periodic recycle-able been creation with Micronaut使用 Micronaut 创建可缓存的定期回收
【发布时间】:2019-05-10 09:04:41
【问题描述】:

我正在开发一个依赖于另一个网络服务的 Micronaut API

因为与远程网络服务的连接会消耗远程服务中的资源,所以我正在考虑让负责建立网络连接的 bean 可循环使用。

这个想法是允许远程服务器也回收资源,并且由于远程网络服务可能已关闭,这将允许 API 在这种情况下能够恢复。

在 Micronaut 中是否有任何推荐的模式来执行此操作?

非常感谢,谢谢 奥斯卡

【问题讨论】:

    标签: micronaut


    【解决方案1】:

    ...我正在考虑让 bean 负责建立 网络连接可回收。

    Micronaut 提供了一个非常简单而强大的机制来帮助解决这个问题。请参阅有关声明式 http 客户端的文档:https://docs.micronaut.io/1.1.1/guide/index.html#clientAnnotation

    简而言之,你写一个这样的客户端……

    import io.micronaut.http.client.annotation.*;
    
    @Client('https://someplace.com') 
    public interface PetClient { 
    
        @Post('/pets/{name}/{age}')
        Pet save(String name, int age); 
    }
    

    该接口的一个实例将添加为一个 bean,您可以将其注入任何其他 bean...

    @Controller("/somepath")
    public class SomeController {
    
        public SomeController(PetClient petClient) {
            this.petClient = petClient;
        }
    
        // ...
    }
    

    希望对你有帮助。

    【讨论】:

    • 嗨@Jeff,在我的情况下,这不是一个 HTTP 服务,而是一个到 Corda DLT 的连接,它备份了一个 ActiveMQ/Artemis,我有一个包装这个连接的 bean,它是一个net.corda.core.messaging.CordaRPCOps 的实例
    • 我解决这个问题的方式与我解决上述原始问题的方式完全不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 2020-10-25
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    相关资源
    最近更新 更多