2014-09-02 7 views
12

मैं अपने आईपी को बदलने के लिए एक नोडजेस ऐप को पुनरारंभ करना चाहता हूं। मैं ऐप के भीतर यह कैसे करूँगा? मैंने एक दुर्घटना को मजबूर करने की कोशिश की है, हालांकि यदि ऐप दस मिनट के भीतर दो बार दुर्घटनाग्रस्त हो जाता है, तो उसके क्रोक के बाद दस मिनट बाद डिनो फिर से शुरू हो जाएगा।nodejs में heroku dyno को पुनरारंभ करें

उत्तर

5

v3 एपीआई और this एपीआई कमांड के लिए this नोड रैपर पर एक नज़र डालें।

आपको इसे किसी प्रकार की स्थिति बनाने की आवश्यकता होगी जो इसे ट्रिगर करता है, अगर वास्तव में ऐप के भीतर से ही किया जाना आवश्यक है।

38

यदि आपके पास हेरोकू सीएलआई स्थापित है, तो आप अपने आवेदन के फ़ोल्डर में heroku restart चला सकते हैं या heroku restart --app application_name चला सकते हैं।

यदि आपने इसे इंस्टॉल नहीं किया है, तो आप इसके बारे में जानकारी here प्राप्त कर सकते हैं।

+0

यह "कैसे होगा इस सवाल का जवाब नहीं लगता है मैं इसे ऐप के भीतर ही करता हूं? " –

3

आप Heroku की वेब डैशबोर्ड से सही NodeJS dynos को पुनः आरंभ कर सकते हैं:

डैशबोर्ड -> और अधिक -> सभी dynos

enter image description here

2

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$$ अकेले एंडपॉइंट ऐप को हटा देगा। यह व्यक्तिगत अनुभव

  • उपरोक्त में से किसी के लिए से है, यदि आप dyno नाम हटा दें, तो आप सभी dynos एप्लिकेशन के तहत पुन: प्रारंभ होगा

संबंधित मुद्दे