Runnable выполняет раз два тика cron - PullRequest
0 голосов
/ 15 октября 2019

Я знаю, scheduleProcess выполняется один раз при запуске. Затем он планирует выполнение задачи с помощью cron каждые 3 минуты. После первого запуска cron все нормально. Но каждый следующий раз встречается два числа вызовов otherMethod. Я сделал код проще.

import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.support.CronTrigger;

 public void scheduleProcess() {
        Runnable otherMethod = () -> orderSending(); 
        Runnable task = () -> runAs("status", otherMethod);
        scheduledTasks.add(taskScheduler.schedule(task, new CronTrigger("* */3 * * * *")));
    }

public void runAs(String processName, Runnable runnable) {
        System.out.println(processName);
        try {
            runnable.run();
        } finally {
            System.out.println("test2");
        }
    }

public void orderSending() { // this executes times two every cron tick
        System.out.println("...");
    }

Java 8, SpringBoot 2.0.3, запуск внутри tomcat 8 как war.

1 Ответ

0 голосов
/ 16 октября 2019

Cron:

0 0/3 * * * *

Заставляет код работать так, как он должен.

Cron:

* */3 * * * * 

Сделал это странное поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...