Reputation: 85
My job is running every at the time specified but its running every second of time specified, for example if I set a job to run at 22:54 it will run every second from 22:54:00 until 22:54:59. I want it to just run once at the time specified...any help is much appreciated
my code:
@Scheduled(cron = "* 54 22 * * ?")
public void getCompaniess() {
System.out.println(new Date()+" > Running testScheduledMethod...");
}
output:
Thu Mar 12 22:54:00 GMT 2020 > Running testScheduledMethod...
Thu Mar 12 22:54:01 GMT 2020 > Running testScheduledMethod...
.....
Thu Mar 12 22:54:59 GMT 2020 > Running testScheduledMethod...
Upvotes: 7
Views: 2217
Reputation: 1892
@Scheduled(cron = "0 54 22 * * ?")
public void getCompaniess() {
System.out.println(new Date()+" > Running testScheduledMethod...");
}
Upvotes: 1
Reputation: 118794
Change the first * to 0, with a star you are saying "every second".
Replacing it with a 0 (or any other number 0-59) will have it run on that "second" instead of "all of them".
Upvotes: 9