Весеннее выражение CRON для планирования выполнения задания CRON в 6 утра со вторника по субботу? - PullRequest
0 голосов
/ 07 мая 2020

Является ли приведенное ниже выражение правильным выражением Spring CRON для планирования запуска CRON jon в 6 часов утра со вторника по субботу?

0 0 6 * * TUE-SAT

Это весенняя аннотация, которую я использую @Scheduled(cron="0 0 6 * * TUE-SAT")

Это выражение меня не увлекает. Не уверен, что я делаю не так.

Ниже кода.

import java.net.UnknownHostException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@Component
@EnableScheduling
public class ExpireAccountsJob {


    // Runs at 6:00 AM daily On Tue/Wed/Thursday/Friday/Sat in Prod
    @Scheduled(cron = "${app.scheduler.expireAccountsJobSchedule}")
    public void run() throws UnknowHostException {

        String hostName = InetAddress.getLocalHost().getHostName();

        log.debug("ExpireAccounts:: host name:" + hostName);



        log.debug("Start ExpireAccounts on scheduler node");

        //Some business logic

        log.debug("End ExpireAccountson scheduler node");

    }
}

А ниже - application.yml, откуда я читаю это свойство


app:
  scheduler:
    expireAccountsJobSchedule: 0 0 6 * * TUE-SAT

1 Ответ

0 голосов
/ 07 мая 2020

@Scheduled(cron="0 0 6 ? * TUE-SAT") точнее.

Тем не менее, я думаю, что это не препятствие для увольнения задания, но оно будет работать каждый день, а не в определенные c дни, которые вы хотите, потому что вы указываете * (все дни) в день месяца place.

Однако я думаю, что проблема для вас - это конфигурация, которая позволяет приложениям планировать задания.

Я думаю, что аннотация @EnableScheduling должна быть аннотирована в верхней части класса конфигурации вашего весеннего проекта и должна быть добавлена ​​аннотацией @Configuration.

В противном случае, если вы используете XML для конфигурации, вы должны добавить этот тег в свой XML

task:annotation-driven
...