大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
我有两个弹簧启动应用程序(1.4.3.RELEASE),它们位于同一台服务器上.应用程序A是一个单一的应用程序,其中包含用于处理警报的部分代码,而应用程序B是一个仅处理警报的新专用应用程序.这里的目标是打破小应用程序中的monolotic应用程序.现在,这两个代码一起运行,因为我有旧系统,总是调用应用程序A.
这两个应用程序有一个基于ThreadPoolTaskScheduler配置的taskScheduler.
@Configuration
public class TaskSchedulerConfig {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setWaitForTasksToCompleteOnShutdown(true);
threadPoolTaskScheduler.setPoolSize(100);
return threadPoolTaskScheduler;
}
}
昨天,我经历了一个奇怪的行为:
>已检测到警报并将其发送到新应用B – >好
>应用程序B收到警报并开始根据taskScheduler处理它 – >好
>第一步已由应用程序B处理 – >好
>第二步已由应用程序A处理 – > NOK,奇怪的行为
>第三步已由应用B按预期处理 – >好
这怎么可能?对我来说,每个taskScheduler都附加到创建它的应用程序.我哪里错了?
UPDATE
我有一个发出警报的真实盒子.这些警报必须由新应用程序处理.但我还有旧盒子没有迁移到新系统.所以我在两个不同的项目中有处理代码.
我有一个新代码的新框,它在新系统上创建了一个警报.此警报生成一个状态机,该状态机与任务调度程序异步处理.创建警报后,新应用程序开始处理状态机,并在处理过程中唤醒旧应用程序并处理警报步骤.之后,新应用程序再次唤醒并正常关闭警报.
问题是:为什么旧应用程序会唤醒以处理警报? threadPoolTaskScheduler是否存在已知问题?
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183118.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...