-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
Related to #12
I have read that issue, and did as you advised. I catch error and try not to exit worker, but it does.
In code I have:
if(App.test == false) {
var childProcess = spawn(nodejsBin, [App.methodsDir + path.sep + file, 'standalone']);
}
else {
var childProcess = spawn(nodejsBin, [App.methodsDir + path.sep + file, 'standalone', 'test']);
}
childProcess.stdout.on('data', (data) => {
console.log(`App.js stdout: ${data}`);
});
childProcess.stderr.on('data', (data) => {
console.log(`App.js stderr: ${data}`);
});
childProcess.on('close', (code) => {
console.log(`App.js close: Child process exited with code ${code}`);
});
...
let client = gearmanode.client();
client.submitJob(nextMethod, JSON.stringify(params));
fn();
client.on('error', function() {
fn(new Error("rrrrrr"));
});
But in worker output I see
App.js stdout: Error: rrrrrr
at exports.Client.<anonymous> (/var/www/html/protected/workers/js/methods/wsautocalc.js:236:24)
at emitOne (events.js:116:13)
at exports.Client.emit (events.js:211:7)
at exports.Client.Client._unrecoverableError (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/client.js:283:10)
at exports.Client.Client._getJobServer (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/client.js:296:14)
at tryToSend (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/client.js:163:26)
at jsSendCallback (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/client.js:153:13)
at connectCb (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/job-server.js:266:49)
at Socket.<anonymous> (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/job-server.js:125:13)
at emitOne (events.js:116:13)
App.js stdout: {}
App.js stderr: debug: packet encoded, type=WORK_COMPLETE, buffer.size=50
App.js stdout: verbose: packet sent, type=WORK_COMPLETE, len=50
App.js stderr: debug: packet encoded, type=PRE_SLEEP, buffer.size=12
App.js stdout: verbose: packet sent, type=PRE_SLEEP, len=12
App.js stderr: events.js:183
throw er; // Unhandled 'error' event
^
Error: all job servers fail
at tryToSend (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/client.js:165:35)
at jsSendCallback (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/client.js:153:13)
at connectCb (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/job-server.js:266:49)
at Socket.<anonymous> (/var/www/html/protected/workers/js/node_modules/gearmanode/lib/gearmanode/job-server.js:125:13)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
Also I want to mention:
I have 700 jobs to be made, and if I run first time, all jobs are done correct, and no worker does not exit (throw error). If I rerun tasks (after thay are finished, and !!! without server/service restart ) at approximately when thereis 400 task left, more than 5 workers exit. This strange situation happens always (always at a second run). Could you advise me something?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels