Spring boot 如何在Spring云数据流中获取重启作业的执行id
我们创建了一个Spring批处理作业,通过Spring云任务(一个简单的任务,它只执行作业)在Spring云数据流中执行。UI和RESTAPI都检查了执行情况,在理想情况下一切正常。当我们试图停止并重新启动作业时,问题就出现了。遵循REST API指南:Spring boot 如何在Spring云数据流中获取重启作业的执行id,spring-boot,spring-batch,spring-cloud-dataflow,spring-cloud-task,Spring Boot,Spring Batch,Spring Cloud Dataflow,Spring Cloud Task,我们创建了一个Spring批处理作业,通过Spring云任务(一个简单的任务,它只执行作业)在Spring云数据流中执行。UI和RESTAPI都检查了执行情况,在理想情况下一切正常。当我们试图停止并重新启动作业时,问题就出现了。遵循REST API指南: 启动任务: 使用上一点中返回的任务执行id获取任务执行的信息: 第一个问题出现了:如果使用任务执行id()停止任务,与任务关联的作业将停止执行(在日志中),但在反数据库中,作业将保持为“已启动”。然后就不可能重新启动作业执行,因为它从未达到SC
SCDF服务器公开REST端点以检查作业执行的状态。您可以点击服务器端点,也可以使用REST客户端进行检查。有关REST客户端的更多信息,请查看[此处]。嗯,我不知道是否有更直接的方法来实现这一点,但这是与外部系统集成的可能解决方案:
你好,Ilayaperumal Gopinathan,谢谢你的回答。我将在GitHub中报告这个问题。关于作业执行的状态,我知道有端点可以获取执行信息,问题是我们无法提前知道执行ID。启动请求返回可用于恢复信息的ID,但重新启动请求不返回任何内容。重新启动请求不返回执行ID,因为预期它将使用其尝试重新启动的相同作业执行ID。不确定我是否误解了您的要求。在Spring Batch中,作业执行ID不能重用,每次执行(无论是启动还是重新启动)都有自己的ID。另一件事是“作业实例ID”,它在启动和重新启动之间是通用的。此参数是作业执行详细信息请求中返回的“jobId”字段。考虑到这一点,我意识到SCDF API中还有另一个实例请求:。有了它,就可以获得数据(缺点是需要4个请求)