是的,Mesos 上的 Chronos 可以解决问题。准确地说,您不是“创建很多小框架”而是工作(在 Chronos 中); Chronos 是 Mesos 框架之一,还有许多其他框架,例如 Marathon 或 Cook。
模式如下(对于容器化作业),例如在名为 test.json 的文档中:
{
"name": "test",
"cpus": 0.1,
"mem": 100,
"shell": true,
"command": "echo I AM DOING SOME SERIOUS WORK",
"async": false,
"container": {
"type": "DOCKER",
"image": "ubuntu:14.04"
},
"schedule": "R/2016-05-23T17:00:00Z/PT1M",
"owner": "michael.hausenblas@dcos.io"
}
现在,首先您要注册 Chronos 作业(我在这里使用 http,但也可以使用 curl):
$ http POST http://$CHRONOS_NODE:8080/service/chronos/scheduler/iso8601 < test.json
上述作业将从今天下午 5 点开始每分钟执行一次,如果您愿意,可以像这样手动触发它:
$ http PUT http://$CHRONOS_NODE:8080/service/chronos/scheduler/job/test
最后但并非最不重要的一点是,Chronos constraints 允许您影响放置。