限制Spring云数据流中同时运行的任务总数?

时间:2017-12-11 21:23:49

标签: spring spring-cloud-dataflow

每次我们启动一个spring cloud任务时,它都会启动一个新的jvm(java.exe),所以如果启动了25个任务,那么它将启动25个jvm。

我想知道如何同时限制所有任务的总数(为所有部署的jar运行)?

假设我必须将一次运行的所有任务的总数限制为25.我们可以在SCDF中设置任何设置吗?

请告诉我

2 个答案:

答案 0 :(得分:0)

在较新版本的SCDF中,有一个deployer属性,该属性限制并发任务执行的次数。

deployer.<appName>.kubernetes.maximumConcurrentTasks

默认情况下,值为20。

答案 1 :(得分:0)

默认情况下 ma​​ximumTaskExecutions 是 20。您可以使用以下网址检查 runningExecutionCountma​​ximumTaskExecutionsvalue

http://localhost:9393/tasks/executions/current

本地机器

如果您使用 jar 文件在本地机器上运行 spring-cloud 数据流服务器,那么您需要传递如下参数。

java -jar spring-cloud-dataflow-server-<VERSION>.jar --spring.cloud.dataflow.task.platform.<PLATFORM-TYPE>.accounts.<ACCOUNT-NAME>.maximum-concurrent-tasks=<TASK-COUNT>

例如:

java -jar spring-cloud-dataflow-server-2.7.1.jar --spring.cloud.dataflow.task.platform.local.accounts.default.maximum-concurrent-tasks=1

KUBERNETES

如果你是在kubernetes平台运行spring cloud server那么你需要修改Kubernetes task platforms的配置

  • 转到 src/kubernetes/server/server-config.yaml ,在准确位置添加属性

    spring:
      cloud:
        dataflow:
          task:
            platform:
              <PLATFORM-TYPE>:
                accounts:
                  <ACCOUNT-NAME>:
                     maximum-concurrent-tasks: <TASK-COUNT>
    

例如:

spring:
  cloud:
    dataflow:
      task:
        platform:
          kubernetes:
            accounts:
              dev:
                maximum-concurrent-tasks: 10
              qa:
                maximum-concurrent-tasks: 30
  • 然后应用配置 kubectl apply -f src/kubernetes/server/server-config.yaml
  • 然后重启 spring-cloud-dataflow 服务器。

注意:

  • PLATFORM-TYPE 是指当前支持的部署器之一:localcloudfoundrykubernetes
  • ACCOUNT-NAME 是已配置平台帐户的名称(如果没有明确配置帐户,则为默认)。

参考