Spring 3.2"@Scheduled"注释的异常处理

 jizi456 发布于 2023-01-11 18:21

如何从spring定制"@Scheduled"注释的异常处理?

我有cron作业将在服务器(Tomcat 6)中触发,当发生任何异常时,我需要做一些处理.

Spring版本3.2 Tomcat Server 6

1 个回答
  • 如果要使用Java Config,则需要创建实现SchedulingConfigurer的配置

    @EnableScheduling
    @Configuration
    class SchedulingConfiguration implements SchedulingConfigurer {
        private final Logger logger = LoggerFactory.getLogger(getClass());
        private final ThreadPoolTaskScheduler taskScheduler;
    
        SchedulingConfiguration() {
            taskScheduler = new ThreadPoolTaskScheduler();
            taskScheduler.setErrorHandler(t -> logger.error("Exception in @Scheduled task. ", t));
            taskScheduler.setThreadNamePrefix("@scheduled-");
    
            taskScheduler.initialize();
        }
    
        @Override
        public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
            taskRegistrar.setScheduler(taskScheduler);
        }
    }
    

    您可以根据需要修改错误处理程序.这里我只记录一条消息.

    别忘了调用taskScheduler.initialize(); .没有它你会得到:

    java.lang.IllegalStateException: ThreadPoolTaskScheduler not initialized
    

    2023-01-11 18:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有