在nodejs中重新启动heroku dyno
问题描述:
我想重新启动一个nodejs应用程序来更改其ip。我将如何在应用程序本身中执行此操作?然而,如果应用程序在十分钟内崩溃两次,我尝试强制崩溃,那么在第一次崩溃后十分钟,heroku将重新启动测功机。在nodejs中重新启动heroku dyno
答
如果您安装了Heroku CLI,则可以在应用程序的文件夹中运行heroku restart
或运行heroku restart --app application_name
。
如果您还没有安装它,可以找到关于它的信息here。
答
使用Heroku v3 API有可能使用request node module
var token = 'youAPIKeyHere';
var appName = 'yourAppName here';
var dynoName = 'yourDynoHere';
var request = require('request');
request.delete(
{
url: 'https://api.heroku.com/apps/' + appName + '/dynos/',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.heroku+json; version=3',
'Authorization': 'Bearer ' + token
}
},
function(error, response, body) {
// Do stuff
}
);
还有一个node wrapper,它提供了类似的经历,但不良记录,并要求v3 API的理解反正
var token = 'youAPIKeyHere';
var appName = 'yourAppName here';
var dynoName = 'yourDynoHere';
var Heroku = require('heroku-client');
var heroku = new Heroku({ token: token });
heroku .delete('/apps/' + appName + '/dynos/' + dynoName)
.then(x => console.log(x));
我还发现它有用的浏览器尝试使用此代码
var token = 'youAPIKeyHere';
var appName = 'yourAppName here';
var dynoName = 'yourDynoHere';
var xhr = new XMLHttpRequest();
xhr.open(
'DELETE',
'https://api.heroku.com/apps/' + appName + '/dynos/' + dynoName
);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Accept', 'application/vnd.heroku+json; version=3');
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
xhr.onload = function() {
console.log(xhr.response);
};
xhr.send();
我个人确实使用删除方法有点关注。使用
delete
方法时应小心谨慎,并且仅用/apps/$$appName$$
端点将删除该应用程序。这是从个人的经验对于上述的任何的,如果你省略了赛道的名字,你会重新启动应用程序下的所有DYNOS
这似乎并没有回答“如何将问题我在应用程序本身内部执行此操作?“ – 2017-09-28 01:00:54