paraemu
Version:
An working enviroment that provides a simplified interface for developers who want to fully parallelize node execution
69 lines (59 loc) • 1.87 kB
JavaScript
(()=>{
'use strict';
const pemu = require('../../../paraemu');
let
string = "[WORKER1] Worker Started\n";
string += ` PID: ${process.pid}\n`;
string += ` PPID: ${process.ppid}\n`;
string += ` UID: ${pemu.uniqueId}\n`;
string += ` GID: ${pemu.groupId}\n`;
string += ` TID: ${pemu.taskId}\n`;
string += ` JID: ${pemu.jobId}\n`;
string += ` TAG: ${pemu.tag}\n`;
string += ` ARGS: ${JSON.stringify(pemu.args)}\n`;
string += ` CWD: ${process.cwd()}\n`;
console.log(string);
try {
require( './test-module-2' );
console.log( "[WORKER1] test-module-2 loading test - failed" );
}
catch(e) {
console.log( "[WORKER1] test-module-2 loading test - passed" );
}
try {
require( 'tiinytiny' );
console.log( "[WORKER1] node_modules test - passed" );
}
catch(e) {
console.log( "[WORKER1] node_modules test - failed" );
}
try {
require( './test-module-1' );
console.log( "[WORKER1] test-module-1 loading test - failed" );
}
catch(e) {
console.log( "[WORKER1] test-module-1 loading test - passed" );
}
pemu.on('event1', (event, ...args)=>{
let msg = `[WORKER1] receiving event (${JSON.stringify({event, args})})\n`;
if ( event.type !== "event1" || args[0] === "proc1" ) {
console.log( `${msg}[WORKER1] event test - passed` );
}
else {
console.log( `${msg}[WORKER1] event test - failed` );
}
})
.on('tasks-ready', ()=>{
let prev = (new Date()).getTime();
console.log( `[WORKER1] tasks-ready received!`);
setTimeout(()=>{
console.log( `[WORKER1] sending event1` );
pemu.emit('event1', pemu.tag, 123, 'abc', [111, 'aaa']);
}, 2000);
setTimeout(()=>{
let now = (new Date()).getTime();
console.log( `[WORKER1] exiting! (${Math.floor((now-prev)/1000)} seconds)`);
process.exit(0);
}, 5000);
});
})();