我有一个使用的 Spring 应用程序
@SpringBootApplication
和
@EnableScheduling
在主java中。它还有一个包含多个 @Scheduled 方法的类:
@Component
public class ScheduledTasks {
(...)
@Scheduled(cron = "0 0/5 10-18 ? * *")
public void doThings() {
(...)
}
@Scheduled(cron = "0 0/22 23 ? * *")
public void doAnotherThings() {
(...)
}
据我所知,它没有声明任何特殊的线程池、ThreadPoolExecutor 或类似的东西。该应用程序运行正常,计划的作业运行正常。
我想在运行时获取 @Scheduled 注释的值,只是想知道 cron 何时定义并向用户显示信息。
无需向调度程序更改或添加新任务/作业。
我一直在尝试这个答案 中的一些想法 Spring <task:scheduled> 对象在运行时是如何表示的? 尝试获取自动装配的 ThreadPoolExecutor 或 ThreadPoolTaskExecutor,然后尝试查看该对象的字段是否具有有用的信息,但使用 Autowired 获取它们总是在应用程序启动时失败。
我的应用程序在启动“没有找到用于计划处理的 TaskScheduler/ScheduledExecutorService bean”时还说,所以我想它使用默认/简单的方式来运行计划的方法,它们工作正常。
我不知道是否有必要在 @Configuration 类中手动创建带有该对象的 @Bean 以自省它,或者如何填充与它们关联的构造函数。
哪些对象具有与计划作业相关的信息?
我可以在自己的课堂上自动连接它以获取信息吗?
是否需要在 Spring 中使用 @Bean 手动创建它?如何?
GCT1015
白衣非少年
相关分类