Установить пользовательскую системную дату в Планировщик - PullRequest
0 голосов
/ 12 февраля 2019

Мне нужно выполнять запланированные задачи с настраиваемыми системными датами, например, я должен иметь возможность установить дату планировщика на 2019-01-15, в этом сценарии планировщик должен выполнить все задачи, запланированные на эту дату, понимая, чтотекущая дата 2019-02-12.На данный момент я видел решения только для часовых поясов, используя Spring или Quartz.Спасибо!.

1 Ответ

0 голосов
/ 12 февраля 2019

Используйте модуль TaskScheduler:

private TaskScheduler scheduler;

Runnable exampleRunnable = new Runnable(){
    @Override
    public void run() {
        System.out.println("Executing task");
    }
};

@Async
public void executeTaskT() {
    ScheduledExecutorService localExecutor = Executors.newSingleThreadScheduledExecutor();
    scheduler = new ConcurrentTaskScheduler(localExecutor);

    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
    Date scheduledDate = dateFormat.parse("12-02-2019", dateFormat);

    scheduler.schedule(exampleRunnable, scheduledDate);
}

executeTaskT(); //call it somewhere after the spring application has been configured

Для получения дополнительной информации см .: Задача планирования Spring - запускается только один раз

...