Как заменить @SchedulerLock программным стилем - PullRequest
0 голосов
/ 11 февраля 2019

Я использую весеннюю загрузку, и где-то в коде у меня есть следующий код:

@SchedulerLock(name = "onlineIngestionTask", lockAtMostFor = 900, lockAtLeastFor = 900)
    public void pullTasksFromRemote() throws InterruptedException {
        logger.info("task-started");
        Thread.sleep(500);
        logger.info("task-stopped");
    }

Есть ли способ заменить его с помощью программного стиля?

1 Ответ

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

Похоже, вы можете сделать это без аннотаций Spring, как сказано в документации: https://github.com/lukas-krecan/ShedLock#running-without-spring

LockingTaskExecutor executor = new DefaultLockingTaskExecutor(lockProvider);

...

Instant lockAtMostUntil = Instant.now().plusSeconds(600);
executor.executeWithLock(runnable, new LockConfiguration("lockName", lockAtMostUntil));
...