您有几个问题。不过,在深入探讨之前,让我花点时间了解一下 PCF 上的批处理现在在哪里,然后回答您的问题。
CF的当前状态
从 PCF 1.6 开始,Diego(CF 中的动态运行时)提供了一个名为 Tasks 的新原语。传统上,所有在 CF 上运行的应用程序都应该是长时间运行的进程。因此,为了在 CF 上运行批处理作业,您需要将其打包为一个长时间运行的进程(通常是 Web 应用程序),然后进行部署。如果你想使用远程分区,你需要部署和扩展你认为合适的从属服务器,但这一切都在 CF 之外。借助 Tasks,Diego 现在支持短期流程……也就是完成后不会重新启动的流程。这意味着您可以将批处理作业作为 Spring Boot über jar 运行,一旦完成,CF 将不会尝试重新启动它(这是一件好事)。 1.6 的问题在于,没有公开 Tasks 的 API,因此它只是一个内部构造。
在 PCF 1.7 中,正在发布一个新的 API,以公开任务以供一般使用。作为 v3 API 的一部分,您将能够将自己的应用程序部署为任务。这允许您将批处理作业作为任务启动,因为它知道它将执行,然后由 PCF 清理。考虑到这一点...
批处理作业能否根据批处理作业处理的数量自动扩展云中的 Slave 节点?
使用 Spring Batch 的分区功能时,有两个关键组件。 Partitioner 和 PartitionHandler。 Partitioner 负责了解数据以及如何划分数据。 PartitionHandler 负责了解将分区分配给从属设备的结构。
对于 Spring Cloud Data Flow,我们计划创建一个PartitionHandler 实现,允许用户在 CF 上执行从属分区作为任务。从本质上讲,我们期望PartitionHandler 会将从属服务器作为任务启动,一旦它们完成,它们就会被清理。
这种方法允许根据分区数量动态启动从属设备的数量(可配置为最大值)。
我们计划为 Spring Cloud Data Flow 进行这项工作,但PartitionHandler 也应该可供该工作流之外的用户使用。
上述场景中的“网格大小”参数如何配置?
Partitioner 真正使用了网格大小参数,而不是PartitionHandler,它旨在提示可能有多少工作人员。在这种情况下,它可以用于配置您要创建多少个分区,但这实际上取决于Partitioner 的实现。
结论
这是对 CF 上的批处理工作流程的描述。重要的是要注意 CF 1.7 在撰写此答案时尚未发布。它计划于 2016 年第一季度推出,届时,此功能将在不久之后推出。