Я узловое приложение, которое сделано нерест (дочерний процесса), чтобы и приложения, приложение имеет хост и порт:Node и прибудете расслоение плотного набора данных из другого процесса
var exec = require('child_process').spawn;
var child = exec('start app');
console.log("Child Proc ID " + child.pid)
child.stdout.on('data', function(data) {
console.log('stdout: ' + data);
});
child.stderr.on('data', function(data) {
console.log('stdout: ' + data);
});
child.on('close', function(code) {
console.log('closing code: ' + code);
});
какое-то приложение запустится сразу, а некоторые приложение займет около раз 10 - 20 секунд, пока они не начнут.
Теперь я использую HTTP-прокси узла для запуска приложения, и проблема заключается в том, что Im получает ошибку, когда использование хочет запустить приложение до его запуска и запуска. Любая идея как-то я могу решить эту проблему?
proxy.on('error', function (err, req, res) {
res.end('Cannot run app');
});
Btw, я не могу отправить ответ 500 в прокси-ошибке из-за ограничения нашей структуры. Любая другая идея, как я могу отслеживать приложение может быть, с некоторым тайм-аут, чтобы увидеть погоду это отправить ответ 200.
UPDATE - Пример из моей логики
httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer({});
http.createServer(function (req, res) {
console.log("App proxy new port is: " + 5000)
res.end("Request received on " + 5000);
}).listen(5000);
function proxyRequest(req, res) {
var hostname = req.headers.host.split(":")[0];
proxy.web(req, res, {
target: 'http://' + hostname + ':' + 5000
});
proxy.on('error', function (err, req, res) {
res.end('Cannot run app');
});
}
Вы упоминаете, что у вас есть рамки ограничений - можете ли вы перейти к более подробным сведениям? Трудно понять, какие решения доступны вам, если мы не знаем, что можем и чего не можем сделать.У вас есть контроль над дочерним процессом (-ами), который порождается? –
Что вы ожидаете, если сообщение отправлено и приложение еще не доступно? – Koder