首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用InboundChannelAdapter / Poller和autoStartup false

禁用InboundChannelAdapter / Poller和autoStartup false
EN

Stack Overflow用户
提问于 2022-02-05 01:54:12
回答 1查看 52关注 0票数 1

在Spring中,我希望通过在autoStartup=false上设置InboundChannelAdapter来禁用轮询器。但是通过下面的设置,我的计票器都不会对我的Tomcat实例1或Tomcat实例2开火,我的两个Tomcat实例都部署了相同的代码。我希望在其中一个实例上禁用计票器,因为我不希望同时对两个Tomcat实例进行相同的作业轮询。

下面是InboundChannelAdapter:

代码语言:javascript
复制
@Bean
@InboundChannelAdapter(value = "irsDataPrepJobInputWeekdayChannel", poller = @Poller(cron="${batch.job.schedule.cron.weekdays.irsDataPrepJobRunner}", maxMessagesPerPoll="1" ), autoStartup = "${batch.job.schedule.cron.weekdays.irsDataPrepJobRunner.autoStartup}")
public MessageSource<JobLaunchRequest> pollIrsDataPrepWeekdayJob() {

    return () -> new GenericMessage<>(requestIrsDataPrepWeekdayJob());
}

属性文件如下所示。Tomcat实例1的属性文件:

代码语言:javascript
复制
# I wish for this job to run on Tomcat instance 1
batch.job.schedule.cron.riStateAgencyTransmissionJobRunner=0 50 14 * * *

# since autoStartup defaults to true, I do not provide:
#batch.job.schedule.cron.riStateAgencyTransmissionJobRunner.autoStartup=true

# I do NOT wish for this job to run on Tomcat instance 1
batch.job.schedule.cron.weekdays.irsDataPrepJobRunner.autoStartup=false

# need to supply as poller has a cron placeholder
batch.job.schedule.cron.weekdays.irsDataPrepJobRunner=0 0/7 * * * 1-5

Tomcat实例2的属性文件:

代码语言:javascript
复制
# I wish for this job to run on Tomcat instance 2
batch.job.schedule.cron.weekdays.irsDataPrepJobRunner=0 0/7 * * * 1-5

# since autoStartup defaults to true, I do not provide:
#batch.job.schedule.cron.weekdays.irsDataPrepJobRunner.autoStartup=true

# I do NOT wish for this job to run on Tomcat instance 2
batch.job.schedule.cron.riStateAgencyTransmissionJobRunner.autoStartup=false

# need to supply as poller has a cron placeholder
batch.job.schedule.cron.riStateAgencyTransmissionJobRunner=0 50 14 * * *

属性文件作为VM选项传递,例如"-Druntime.scheduler=dev1“。我不能使用"-“作为cron表达式禁用其中一个JVM上的轮询器--类似于此处的ask:Poller annotation with cron expression should support a special disable character

我的目标是能够从Tomcat实例1或Tomcat实例2手动调用作业。我在上面提到的设置的问题是,没有一个计票者按照他们的cron表达式开火。

EN

回答 1

Stack Overflow用户

发布于 2022-02-05 03:48:20

考虑调查一种领导人选举模式:https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints.html#leadership-event-handling

这样,默认情况下,这些端点处于非启动状态,并且处于相同的角色中。选举将选出一位领导人,只从这一位开始。

当然,必须有一些共同的外部服务来控制领导。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70994714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档