ho connettersi ad altri siti web nella mia app node.js utilizzando il modulo di richiesta in maniera molto standard:Node.js app inizia timeout (ETIMEDOUT) quando HTTP collegamento ad altri siti dopo essere stato in esecuzione per un certo tempo
Network.prototype.httpRequest = function(url, method, params, headers, callback)
{
var qs = typeof params === 'string' ? params : querystring.stringify(params || {}),
config = {
'method': (method || 'get').toUpperCase(),
'url': url,
'timeout': this.app.api.settings.http.timeout_outbound
};
if(config.method === 'GET')
{
config.url += '?' + qs;
}
else
{
config.body = qs;
}
request(config, callback);
};
Dopo alcune ore in cui la mia app è attiva, questa funzione inizia a scadere, e non solo per un sito web. Inizia a non riuscire a connettersi (ETIMEDOUT
) in modo casuale, senza alcun modello distinguibile.
La mia prima, ovvia ipotesi è che qualcosa deve in qualche modo bloccare/interferire con le connessioni di rete. Ci sono molte altre "parti mobili" nella mia app (ad esempio, collegarsi a Mongo tramite Mongoose, collegarsi a ElasticSearch via Elastical, ecc.), Quindi è probabilmente concepibile che una di esse sia la causa ... ma ovviamente, è non è un'opzione sedersi attorno disabilitando selettivamente altri moduli e aspettando 6 ore per vedere se il problema scompare ...
Sto monitorando il traffico di rete (tramite iStatMenus pro su OSX, FWIW) e non vedo alcun inusuale/traffico persistente proveniente dal nodo.
C'è qualche altro modo di approfondire ciò che potrebbe bloccare/interferire con il mio traffico?
hai risolto il problema? ho lo stesso problema ... – hereandnow78
Sono anche interessato alla soluzione ... – rshmelev
Ho anche lo stesso problema. Puoi dirci quale soluzione l'ha risolta? –