Size: a a a

2020 April 26

VS

Vitaly Sirotkin in Java & Co
Vitaliy Kostetskiy
Ребята
Мне нужно, запускать метод через каждые n секунд
Я использовал Executors.newSingleThreadScheduledExecutor().scheduleWithFixedDelay()
Но этот молодой человек глотает эксепшены, потому что возвращает фьючер и нужно дергать .get() в конце
А мне нужно запустить этот шедулер в @EventListener(ContextRefreshedEvent.class)
Т.е. мне нужно просто что бы запускается метод, выполняется там сколько ему нужно
И если упал с ошибкой или завершился корректно, то запускается снова через n секунд, без всяких фьючеров, блокировок потока в виде .get() и тд и тп
Что посоветуете?
@Scheduled чем не устраивает?
источник

E

Evgeniy ♎️ in Java & Co
Зачем юзать экзекьютор и отдельный поток когда нужно просто с задержкой запустить метод...
Не совсем понимаю)
источник
2020 April 27

VK

Vitaliy Kostetskiy in Java & Co
Evgeniy ♎️
Да вам просто delay  нужен
Зачем именно отдельный поток?
мне приходит ивент рефреш контекста, он синхронный
а мне нужно этот метод запускать вообще отдельно с таймаутами
источник

VK

Vitaliy Kostetskiy in Java & Co
Evgeniy ♎️
Зачем юзать экзекьютор и отдельный поток когда нужно просто с задержкой запустить метод...
Не совсем понимаю)
его нужно не 1 раз запустить, а что бы он постоянно запускался после завершения
источник

E

Evgeniy ♎️ in Java & Co
И как это будет работать если придёт 2 ивент рефрена чаще чем delay?
источник

VK

Vitaliy Kostetskiy in Java & Co
у меня в приложении нет ничего, что вызовет второй рефреш контекста
источник

VS

Vitaly Sirotkin in Java & Co
Vitaliy Kostetskiy
мне приходит ивент рефреш контекста, он синхронный
а мне нужно этот метод запускать вообще отдельно с таймаутами
@Scheduled чем не устраивает?
источник

VK

Vitaliy Kostetskiy in Java & Co
Vitaly Sirotkin
@Scheduled чем не устраивает?
он проксирует класс?
источник

VS

Vitaly Sirotkin in Java & Co
Да
источник

VK

Vitaliy Kostetskiy in Java & Co
собственно не хочу класс проксировать, что бы потом не попасть в интересные дебаг ситуации
источник

VS

Vitaly Sirotkin in Java & Co
Эммммммм, ты охуеешь, но пол спринга на этом работает, если не больше. Кстати, eventlistener тоже
источник

VK

Vitaliy Kostetskiy in Java & Co
Vitaly Sirotkin
Эммммммм, ты охуеешь, но пол спринга на этом работает, если не больше. Кстати, eventlistener тоже
ивентлисенер не требовал бы паблик область видимости у бина, если бы его проксировал
источник

VS

Vitaly Sirotkin in Java & Co
Ты @confuguration юзаешь?
источник

VK

Vitaliy Kostetskiy in Java & Co
в классах конфигурации я не против проксирования, в рабочих я против, помню были моменты с this ом когда выходила хрень что я ссылался на исходный класс, а не на проксируемый и приходилось из контекста доставать запроксированный инстанс
источник

VS

Vitaly Sirotkin in Java & Co
Ну да, прокси так и работает. Это несложно, если знать суть. Сознательно избегать этого - непонятный страх)
источник

VK

Vitaliy Kostetskiy in Java & Co
подскажите лучше, timer.schedule после выполнения таска отсчитывает или после его запуска?
источник

VS

Vitaly Sirotkin in Java & Co
Vitaliy Kostetskiy
подскажите лучше, timer.schedule после выполнения таска отсчитывает или после его запуска?
А доку открыть не вариант?)
источник

VK

Vitaliy Kostetskiy in Java & Co
там черным по белому написаны только параметры, как именно отсчет идет не написано
источник

VS

Vitaly Sirotkin in Java & Co
Delay и rate именно этим и отличаются.
источник

VK

Vitaliy Kostetskiy in Java & Co
т.е. методы schedule делают то что мне нужно
а там где постфикс rate - это от начала?
источник