Похоже, что жизненный цикл Spring Cloud Task неправильно управляется, когда приложение весенней загрузки имеет иерархические контексты приложения.
Когда я добавляю аннотацию @EnableTask в родительский ApplicationContext, она регистрирует задачу, но записывает время выполнения из родительский контекст, не в состоянии записать точное время выполнения и код выхода (всегда успешно, поскольку родительский контекст закрывается успешно).
С другой стороны, если я добавляю аннотацию к дочернему контексту (который фактически запускает CommandlineRunner), он завершается неудачно чтобы запустить задачу вообще, за исключением следующего:
o.s.c.t.listener.TaskLifecycleListener : [] [] An event to end a task has been received for a task that has not yet started.
s.c.a.AnnotationConfigApplicationContext : [] [] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'taskLifecycleListener'; nested exception is java.lang.IllegalArgumentException: Invalid TaskExecution, ID 132515 not found
Глядя на источник TaskLifecycleListener, выясняется, что он реагирует на ApplicationEvents из родительского контекста и перехватывает ApplicationReadyEvent из родительского контекста до запуска задачи.
Spring Boot 2.2.6 / Spring Cloud Task 2.2.2
Есть мысли?