我有一个简单的测试方法,设置为每5秒运行一次,但是看看System.out,你可以看到它似乎做了一些奇怪的事情.
@Scheduled(cron="*/5 * * * * ?")
public void testScheduledMethod() {
System.out.println(new Date()+" > Running testScheduledMethod...");
}
Run Code Online (Sandbox Code Playgroud)
输出:
Wed Jan 09 16:49:15 GMT 2013 > Running testScheduledMethod...
Wed Jan 09 16:49:15 GMT 2013 > Running testScheduledMethod...
Wed Jan 09 16:49:20 GMT 2013 > Running testScheduledMethod...
Wed Jan 09 16:49:20 GMT 2013 > Running testScheduledMethod...
Wed Jan 09 16:49:25 GMT 2013 > Running testScheduledMethod...
Wed Jan 09 16:49:25 GMT 2013 > Running testScheduledMethod...
Wed Jan 09 16:49:30 GMT 2013 > Running …Run Code Online (Sandbox Code Playgroud) 如何@Scheduled在spring-boot应用程序中测试作业任务?
package com.myco.tasks;
public class MyTask {
@Scheduled(fixedRate=1000)
public void work() {
// task execution logic
}
}
Run Code Online (Sandbox Code Playgroud) 我想测试我的 Cron-job 是否会在给定时间(每年 1 月 1 日 00:00)执行。有没有办法测试这个?不幸的是,我在网上找到的每个示例都是指将在固定时间段后执行的作业,例如全部 5 秒。(https://www.baeldung.com/spring-testing-scheduled-annotation)。
@Scheduled(cron = " 0 0 1 1 *")
public void myFunc() {
do something
}
Run Code Online (Sandbox Code Playgroud)