检测弹簧积分的失火指令

时间:2017-08-03 07:05:26

标签: java spring spring-integration

我正在使用spring集成来安排不同的工作。我有不同的触发器,我看到触发器丢失执行,但无法在日志文件中找到任何条目。我需要在我的日志文件中记录失火详细信息。你能告诉我怎么做吗?还有一种方法可以提供关于弹簧集成的失火指令。池大小设置为10,因此可能缺少执行,因为线程不可用,但由于日志文件中没有条目,我无法跟踪它。

1 个答案:

答案 0 :(得分:0)

Spring Integration默认使用ThreadPoolTaskScheduler这个选项:

BeanDefinition scheduler = BeanDefinitionBuilder.genericBeanDefinition(ThreadPoolTaskScheduler.class)
                .addPropertyValue("poolSize", IntegrationProperties.getExpressionFor(IntegrationProperties.TASK_SCHEDULER_POOL_SIZE))
                .addPropertyValue("threadNamePrefix", "task-scheduler-")
                .addPropertyValue("rejectedExecutionHandler", new CallerRunsPolicy())
                .addPropertyValue("errorHandler", new RootBeanDefinition(MessagePublishingErrorHandler.class))
                .getBeanDefinition();

        registry.registerBeanDefinition(IntegrationContextUtils.TASK_SCHEDULER_BEAN_NAME, scheduler);

MessagePublishingErrorHandler默认情况下会向全局errorChannel发送问题。

如果您想更改此全局TaskScheduler的某些行为,则应使用适当的选项声明自己的taskScheduler

否则我不理解你的问题,你应该提供更多关于这个问题的信息。