我有一个spring组件,它调用AWS来做一些事情。它获取持续时间
有什么推荐的方法吗?任何提示/线索表示赞赏
最佳答案
我认为将它作为一种代理实现是最好的(也是最简单的)。
首先,为将刷新的对象创建一个类。我们称之为RefreshableProperty
。
然后,您需要具有以下职责的代理:
它将被注入需要访问RefreshableProperty
的任何地方
它会有一个AtomicReference<RefreshableProperty>
类型的字段的实例
它可以有一个用@Scheduled
注释的方法(带有某些cron表达式),该方法将定期调用
此方法将连接到您的配置服务器并下载新设置,这些新设置将被放入RefreshableProperty
的新实例中
在这样的操作结束时,您的代码应交换引用,使其指向新对象
如果您需要每小时精确地完成一次,那么这将是一项艰巨的任务,因此我强烈建议您不要这样做,因为将这个服务客户端与您的Spring Application同步非常棘手。