10

我正在尝试使用 Marathon 执行一次性任务。我能够让任务容器运行,但是在任务命令完成后,马拉松运行另一个任务,依此类推。如何防止 Marathon 运行多个任务/命令?

或者,如果 Marathon 无法做到这一点,我该如何实现所需的行为?

4

4 回答 4

9

作为一个黑客,你可以在最后杀死马拉松任务,如下所示:https ://github.com/mesosphere/marathon/issues/344#issuecomment-86697361

正如 rukletsov 已经提到的 - 马拉松是为长时间运行的任务设计的:https ://stackoverflow.com/a/26647789/1047843

如果 Chronos 不适合您的情况,您可以将 Jenkins 与 Mesos 插件一起使用:https ://github.com/jenkinsci/mesos-plugin

或者您可以尝试直接与 Mesos 交谈并编写您自己的框架: http: //mesos.apache.org/documentation/latest/app-framework-development-guide/

在我看来,两个最简单的选择是 Chronos 和 Jenkins。

于 2015-08-11T12:42:06.363 回答
6

Marathon为长时间运行的服务而设计,这意味着一旦进入终端状态,它将重新启动任务。根据您的任务的性质,您可能想看看其他 Mesos 框架,例如Chronos。如果要启动单个任务,可以使用mesos-executeMesos 附带的工具。

于 2015-08-11T11:04:59.383 回答
5

自从回答了这个问题后,已经为马拉松开发了一个名为 Eremetic 的新框架,它允许你完成一项任务。

https://github.com/klarna/eremetic

于 2016-04-23T09:06:15.470 回答
0

@Sander Smits:@rukletsov 是如何写的,您可以使用重复间隔 ISO8601 仅执行一次服务。执行后,chronos 将自动禁用该作业。使用“R0/..”(0 次重复)进行日程设置。

于 2015-08-20T10:08:08.680 回答