昨天已經使用了Chronos提供的WebUI建立執行Job的時間,今天使用Chronos提供的Restful API來操作Chronos Job
1、加入Scheduled Job使用的json和指令如下:
addScheduler.json
{
"name": "test1",
"command": "echo \"Hello Wolrd\"",
"shell": true,
"executor": "",
"executorFlags": "",
"taskInfoData": "",
"retries": 2,
"owner": "",
"ownerName": "",
"description": "",
"cpus": 0.1,
"disk": 256,
"mem": 128,
"disabled": false,
"softError": false,
"dataProcessingJobType": false,
"fetch": [],
"uris": [],
"environmentVariables": [],
"arguments": [],
"highPriority": false,
"runAsUser": "root",
"concurrent": false,
"constraints": [],
"schedule": "R/2016-12-21T03:00:00.000Z/PT24H",
"scheduleTimeZone": ""
}
執行restful的指令如下:
# curl -L -H 'Content-Type: application/json' -X POST -d@addScheduler.json http://192.168.1.118:8080/v1/scheduler/iso8601
2.列出有哪些Job已經加入Chronos了
# curl -L -X GET http://192.168.1.118:8080/v1/scheduler/jobs
3.刪除已經加入的Job
# curl -L -X DELETE http://192.168.1.118:8080/v1/scheduler/job/test1
test1就是剛才所建立的JobName
4.手動執行job,不用等待時間已經到了才執行,用來測試使用的
# curl -L -X PUT http://192.168.1.118:8080/v1/scheduler/job/test2
test2是JobName
5.Job之間可以建立dependency的相依,使用下面的API可以顯示Job之間的關係
curl -L -X GET http://192.168.1.118:8080/v1/scheduler/graph/dot
另外Chronos也有跟marathon一樣的功能,就是可以限制Job在哪些機器上執行,只要在json設定如下:
{
...
"constraints": [["rack", "LIKE", "rack-[1-3]"]],
...
}
今天已經介紹了使用Chronos的Restful來建立、刪除、顯示Job…等等的功能,這些都是未來在寫程式時有所幫助,如果對其它的功能有興趣可以參考Chronos的文件,另外除了可以使用curl執行Restful之外,也可以使用Postman的方式來執行Restful。
參考資料:
chronos github:https://mesos.github.io/chronos/docs/api.html