Node.js 在nodejs中重新启动heroku dyno

Node.js 在nodejs中重新启动heroku dyno,node.js,heroku,Node.js,Heroku,我想重新启动nodejs应用程序以更改其ip。我将如何在应用程序本身中做到这一点?我尝试过强制崩溃,但是如果应用程序在十分钟内崩溃两次,heroku将在第一次崩溃十分钟后重新启动dyno。如果安装了heroku CLI,您可以在应用程序文件夹中运行heroku restart,或者运行heroku restart--app application\u name 如果您没有安装它,您可以找到有关它的信息。查看V3API和API命令的节点包装器 如果真的需要从应用程序本身内部执行,您可能需要创建某种

我想重新启动nodejs应用程序以更改其ip。我将如何在应用程序本身中做到这一点?我尝试过强制崩溃,但是如果应用程序在十分钟内崩溃两次,heroku将在第一次崩溃十分钟后重新启动dyno。

如果安装了heroku CLI,您可以在应用程序文件夹中运行
heroku restart
,或者运行
heroku restart--app application\u name

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

查看V3API和API命令的节点包装器


如果真的需要从应用程序本身内部执行,您可能需要创建某种触发此操作的条件。

您可以从heroku的web仪表板上重新启动nodejs dynos:

仪表板->更多->重新启动所有dynos

使用可以使用


还有一种方法提供了类似的体验,但记录得很差,而且无论如何都需要了解


我还发现在浏览器中使用此代码进行实验很有用

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方法有点令人担忧。使用
    delete
    方法时应小心,仅
    /apps/$$appName$$
    端点将删除该应用。这是个人经历

  • 对于上述任何一种情况,如果您省略dyno名称,您将重新启动应用程序下的所有dyno


这似乎并没有回答“我如何在应用程序本身中做到这一点?”的问题。链接的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();