Spring 批量远程分区
Spring Batch Remote Partitioning
我想了解远程分区期间 DeployerPartitionHandler
和 DeployerStepExecutionHandler
之间的集成。
多个worker时父任务执行的开始时间、结束时间、执行状态如何更新?
如果某个工作进程由于某些外部原因变得无响应,会发生什么情况?有没有办法以编程方式处理这种情况?即,杀死无响应的进程并使该步骤失败。
在此先感谢您的投入!!
您在这里有很多问题,所以让我一次回答一个问题。
多个worker时父任务执行的开始时间、结束时间、执行状态如何更新?
此架构中的所有组件都是任务。 parent 是一个任务,worker 是每个任务,所以它们都独立更新任务存储库。父应用程序将在任务开始时标记开始时间(在调用任何 CommandLineRunner
或 ApplicationRunner
实现之前)。它将在所有工作人员完成后更新结束时间和结果(因为远程分区步骤在所有工作人员完成或超时之前不会完成)。
如果某个工作进程由于某些外部原因变得无响应,会发生什么情况?
DeployerPartitionHandler
使用的部署程序依赖于用于生产的平台(CloudFoundry、Kubernetes 等)。这些平台中的每一个都以自己的方式处理挂起的进程,因此这个问题的答案确实是特定于平台的。在大多数情况下,如果某个进程被识别为不健康(根据平台使用的任何定义),它将被关闭。
有没有办法以编程方式处理这种情况?即,杀死无响应的进程并使步骤失败。
如果一个分区在执行过程中出现故障,父分区也会被标记为失败并可以重新启动。重新启动时(默认情况下),只有失败的分区会重新 运行。任何已经完成的分区将不会被重新执行。
我想了解远程分区期间 DeployerPartitionHandler
和 DeployerStepExecutionHandler
之间的集成。
多个worker时父任务执行的开始时间、结束时间、执行状态如何更新?
如果某个工作进程由于某些外部原因变得无响应,会发生什么情况?有没有办法以编程方式处理这种情况?即,杀死无响应的进程并使该步骤失败。
在此先感谢您的投入!!
您在这里有很多问题,所以让我一次回答一个问题。
多个worker时父任务执行的开始时间、结束时间、执行状态如何更新?
此架构中的所有组件都是任务。 parent 是一个任务,worker 是每个任务,所以它们都独立更新任务存储库。父应用程序将在任务开始时标记开始时间(在调用任何 CommandLineRunner
或 ApplicationRunner
实现之前)。它将在所有工作人员完成后更新结束时间和结果(因为远程分区步骤在所有工作人员完成或超时之前不会完成)。
如果某个工作进程由于某些外部原因变得无响应,会发生什么情况?
DeployerPartitionHandler
使用的部署程序依赖于用于生产的平台(CloudFoundry、Kubernetes 等)。这些平台中的每一个都以自己的方式处理挂起的进程,因此这个问题的答案确实是特定于平台的。在大多数情况下,如果某个进程被识别为不健康(根据平台使用的任何定义),它将被关闭。
有没有办法以编程方式处理这种情况?即,杀死无响应的进程并使步骤失败。
如果一个分区在执行过程中出现故障,父分区也会被标记为失败并可以重新启动。重新启动时(默认情况下),只有失败的分区会重新 运行。任何已经完成的分区将不会被重新执行。