Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var bs = require('nodestalker'),
- tube = 'mailer'; // channel
- var config = require('./config.js');
- var email = require('./elasticemail.js'),
- // cluster
- cluster = require('cluster'),
- numCPUs = config.numWorker;
- // expception elkapása
- process.on('uncaughtException', function(err) {
- console.log(err);
- });
- var client = bs.Client(config.bs.host);
- // email settings
- email.settings = config.email;
- if (cluster.isMaster && numCPUs > 1) {
- var worker = new Array();
- // Fork workers.
- for (var i = 0; i < numCPUs; i++) {
- worker[i] = cluster.fork();
- }
- // if worker died
- cluster.on('death', function(worker) {
- console.log('mailer worker ' + worker.pid + ' died. Restart...');
- cluster.fork();
- });
- } else {
- console.log('Mailer worker started...');
- // worker
- client.watch(tube).onSuccess(function(data) {
- function resJob() {
- client.reserve().onSuccess(function(job) {
- console.log('reserved', job);
- var mail = JSON.parse(job.data);
- email.send(mail);
- client.deleteJob(job.id).onSuccess(function(del_msg) {
- console.log('deleted', job.id);
- resJob();
- });
- });
- }
- resJob();
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement