在nodejs中重新启动heroku dyno

问题描述:

我想重新启动一个nodejs应用程序来更改其ip。我将如何在应用程序本身中执行此操作?然而,如果应用程序在十分钟内崩溃两次,我尝试强制崩溃,那么在第一次崩溃后十分钟,heroku将重新启动测功机。在nodejs中重新启动heroku dyno

看看this节点封装的v3 API和this api命令。

您可能需要创建一些触发条件,如果确实需要从应用程序本身完成

如果您安装了Heroku CLI,则可以在应用程序的文件夹中运行heroku restart或运行heroku restart --app application_name

如果您还没有安装它,可以找到关于它的信息here

+0

这似乎并没有回答“如何将问题我在应用程序本身内部执行此操作?“ – 2017-09-28 01:00:54

您可以从Heroku的的Web仪表板右侧重新启动的NodeJS DYNOS:

板 - >更多 - >重新启动所有DYNOS

enter image description 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