我正在尝试调用marathon API来挂起一个作业。我在API文档中没有看到如何做到这一点,但我认为我可以通过设置instance = 0来做到这一点。但所做的一切只是让我的工作进入了“部署...”状态(显然是永远的)。另一方面,当我使用马拉松门户网站挂起一个作业时,它会立即挂起。
有人知道怎么做吗?
$.fn.suspendjob = function(id) {
$.ajax({
type: 'PUT',
url: 'https://mesos-head.achillesv.net/marathon/v2/apps' + id,
headers: {
"Authorization": "Basic " + btoa(user + ":" + pass)
},
data: JSON.stringify({ instances: 0}),
contentType: "application/json; charset=utf-8",
success: function(result) {
appslist.length = 0;
$('#tabs').tabs("option", "active", 1);
$('#tabs').tabs("option", "active", 0);
}
});};
发布于 2016-08-16 12:36:04
我认为你的解决方案很好(设置实例= 0)。我尝试了这个解决方案,它起作用了。请再试一次!
发布于 2017-08-03 07:02:04
实现这一点的一个小python脚本(它假设marathon在端口8080上的localhost上运行):
import requests
marathon = "http://localhost:8080/v2/apps/<app-name>"
payload = {'instances': 0}
r = requests.put(marathon+"?force=true", json=payload)
#'?force=true' will be useful if an app is in deploying state
print r.status_code, r.reasonhttps://stackoverflow.com/questions/38772847
复制相似问题