Компонент RefreshScoped с аннотацией Scheduled не отменяет текущую запланированную задачу, если трассировка включена - PullRequest
0 голосов
/ 13 июля 2020

Компонент refre sh с областью видимости и аннотацией Scheduled не отменяет текущую запланированную задачу при refre sh, если библиотеки трассировки присутствуют в пути к классам.

Здесь приведен пример приложения https://github.com/winster/SpringSchedulerDynamic

Обратите внимание, что он работает должным образом, если трассировки нет. (Создается новая запланированная задача, а текущая отменяется)

Добавление информации об отладке, начиная с RefreshScope :: refreshAll

1. Without tracing library

RefreshScope::refreshAll -> GenericScope::destroy -> DisposableBeanAdapater::run -> DisposableBeanAdapater::destroy

this.beanPostProcessors = ScheduledAnnotationBeanPostProcessor, ApplicationListenerDetector
С библиотекой трассировки
RefreshScope::refreshAll -> GenericScope::destroy -> DisposableBeanAdapater::run -> DisposableBeanAdapater::destroy

this.beanPostProcessors = ApplicationListenerDetector

Следует отметить, что ScheduledAnnotationBeanPostProcessor::postProcessBeforeDestruction в этом случае не вызывается

Вопрос поднят в spring-cloud-commons

...