【问题标题】:Using Spring Cloud Task in order to run tasks on a tasks-enabled Cloud Foundry使用 Spring Cloud Task 在启用了任务的 Cloud Foundry 上运行任务
【发布时间】:2024-06-02 15:05:02
【问题描述】:

我使用的是最新的Pivotal Cloud Foundry,即版本 1.8

运行cf feature-flags表示确实启用了任务创建。

我的 Spring 应用正在使用最新的 Spring Cloud Tasks 库,即版本 1.1.0.RELEASE,并且任务由 @EnableTask 注释启用。

但是,当我 cf push 应用程序时,它会重新启动,就好像它被视为 LRP(长期运行进程)而不是任务...

有人可以帮忙吗?我错过了什么?

edit:PWS Cloud Foundry 的最新版本现在是:1.9,但我的问题仍然相关。

【问题讨论】:

  • 我的问题仍然存在...最新的 CLI 现在可以在 PWS 上运行任务,但文档没有说明如何在不将其作为 Web 进程拾取的情况下 cf push 任务应用程序...可以有人请帮忙吗?

标签: cloud-foundry spring-cloud-task


【解决方案1】:

可以使用 API (http://v3-apidocs.cloudfoundry.org/version/3.0.0/index.html#the-task-object) 和从 12 月中旬开始使用 cf CLI (cf run-task) 创建任务。

【讨论】:

  • 非常感谢您的回复。 12月中旬cf run-task是个好消息!我仍然想知道整个过程是什么样的:我如何cf push 一个任务应用程序(稍后与cf run-task 一起运行)而不将它作为 LRP 拾取?你能指出关于cf run-task的文档吗?
  • 好的。关于文档,目前 Pivotal 团队似乎正在研究它,并且很快就会可用。
  • 更新:这里是关于运行任务的文档的链接:docs.pivotal.io/pivotalcf/1-9/devguide/using-tasks.html
  • 更新:最新的 CLI 现在允许使用 cf run-task APP_NAME COMMAND [--name TASK_NAME] 运行任务。但是,文档没有说明要传递什么命令才能运行 java 可执行文件(例如,对于批处理应用程序)。我在这里打开了另一个问题:*.com/questions/41313079
【解决方案2】:

为了cf push 一个应用程序不会被作为 web/LRP 进程拾取,必须将--no-route 参数传递给cf push

如果使用manifest.yml,则有一个等效的no-route: true

【讨论】:

  • 我遇到了同样的问题,即使我在清单文件中指定了 no-route: true ,应用程序也会重新启动。我需要做什么@balteo
  • 将您的实例计数设置为 0
最近更新 更多