【发布时间】:2018-06-24 23:53:06
【问题描述】:
我正在编写一个 SCDF spi 实现来支持流和任务应用程序。作为其中的一部分,我们需要在任务完成后执行一些清理操作。
有人可以提供有关 SCDF 是否会在任务完成时收到回调的信息。如果不是,那么执行清理的替代方法是什么。
【问题讨论】:
-
您要进行哪种类型的清理?
-
我们正在为 SCDF 流/任务编写一个平台。作为其中的一部分,我们需要为每个任务执行从 SCDF 启动一些进程。理想情况下,这些进程应该在任务执行完成后立即停止,但 SCDF 没有收到任何任务完成回调。由于任务可以是任何用户应用程序,因此必须从 SCDF 而不是任务应用程序调用这些进程。
-
这种类型的清理可以通过
TaskExecutionListener完成。TaskExecutionListener#onTaskEnd或TaskExecutionListner#onTaskFail都可以用来清理这些进程,这是我推荐的方法。 -
问题是 TaskExecutionListener 是 spring-cloud-task 的一部分,但不是 spring cloud deployer spi 的一部分。我们需要在 spring cloud dataflow/deployer 提供一些东西,这样我们就不会依赖任务应用程序,因为那将是用户应用程序。我可以看到 Sabby 的第 2 点是最接近的,或者另一个选项是 SCDF poll db。
-
我认为清理任务应用程序消耗的资源是该应用程序的责任......
标签: spring spring-cloud spring-cloud-dataflow spring-cloud-task