Spring 集成多个轮询器
Spring integration multiple poller
我有一个集成有两个不同的集成流程。因此,我将这些流程分为两个不同的 类。比方说,第一个集成流程必须每两小时工作一次,而另一个集成流程每一个小时工作一次。
// Class1
@Bean
public PollerMetadata poller1() {
return Pollers.fixedRate(2, TimeUnit.HOURS, 1).get();
}
// Class2
@Bean
public PollerMetadata poller2() {
return Pollers.fixedRate(1, TimeUnit.HOURS, 1).get();
}
使用此实现,应用程序 运行 失败,因为 上下文中没有可用的默认轮询器。
最好的方法是什么?
您需要从透视位置指向您的 PollerMetadata
个 bean。
如果您谈论 IntegrationFlow
和某个端点轮询其中一个队列,则有一个相应的选项,例如:
.handle(..., e -> e.poller(PollerMetadata))
https://docs.spring.io/spring-integration/docs/current/reference/html/dsl.html#java-dsl-endpoints
我有一个集成有两个不同的集成流程。因此,我将这些流程分为两个不同的 类。比方说,第一个集成流程必须每两小时工作一次,而另一个集成流程每一个小时工作一次。
// Class1
@Bean
public PollerMetadata poller1() {
return Pollers.fixedRate(2, TimeUnit.HOURS, 1).get();
}
// Class2
@Bean
public PollerMetadata poller2() {
return Pollers.fixedRate(1, TimeUnit.HOURS, 1).get();
}
使用此实现,应用程序 运行 失败,因为 上下文中没有可用的默认轮询器。
最好的方法是什么?
您需要从透视位置指向您的 PollerMetadata
个 bean。
如果您谈论 IntegrationFlow
和某个端点轮询其中一个队列,则有一个相应的选项,例如:
.handle(..., e -> e.poller(PollerMetadata))
https://docs.spring.io/spring-integration/docs/current/reference/html/dsl.html#java-dsl-endpoints