Skip to content

Instantly share code, notes, and snippets.

@crookm
Created February 7, 2018 04:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crookm/f3d16e709a8a7996a9a85f4fe12f7541 to your computer and use it in GitHub Desktop.
Save crookm/f3d16e709a8a7996a9a85f4fe12f7541 to your computer and use it in GitHub Desktop.
Forked worker to continuously process information in node.js
const self = { id: 0 };
let work_loop = () => {
// some work here! :D
};
function sendPayload(payload) {
process.send(payload);
}
function sendError(err) {
sendPayload({
type: 'error',
obj: {
errcode: -1,
errmsg: err
}
});
}
function acknowledgePayload(payload) {
sendPayload({ type: 'meta.acknowledged', obj: { id: payload.id } });
}
function receivePayload(payload) {
switch (payload.type) {
case 'id.set':
self.id = payload.obj.id;
var work_loop_interval = setInterval(work_loop, 1000);
break;
}
acknowledgePayload(payload);
}
process.on('message', receivePayload);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment