如何使用apachemesos/marathon运行一次性任务?

mzillmmw  于 2021-06-21  发布在  Mesos
关注(0)|答案(4)|浏览(383)

我想用马拉松来完成一个一次性的任务。我可以让任务容器运行,但是在task命令完成后,marathon会运行另一个任务,以此类推。如何防止marathon运行多个任务/命令?
或者,如果这在马拉松比赛中是不可能的,我怎样才能达到期望的行为?

r8uurelv

r8uurelv1#

自从这个问题被回答之后,一个新的叫做eRemeetic的框架已经为marathon开发,它允许你运行一次性任务。
https://github.com/klarna/eremetic

q8l4jmvw

q8l4jmvw2#

@sander smits:@rukletsov是如何编写的您可以使用iso8601的重复间隔只执行一次服务的。执行后,作业将被chronos自动禁用。使用“r0/。”(0重复)进行时间表设置。

slsn1g29

slsn1g293#

作为一个黑客,你可以在最后杀死一个马拉松任务,如下所示: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/
在我看来,两个最简单的选择是克洛诺斯和Jenkins。

csbfibhn

csbfibhn4#

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

相关问题