Advertisement
Guest User

Untitled

a guest
Jul 31st, 2014
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var bs = require('nodestalker'),
  2.     tube = 'mailer'; // channel
  3.  
  4. var config = require('./config.js');
  5. var email = require('./elasticemail.js'),
  6.     // cluster
  7.     cluster = require('cluster'),
  8.     numCPUs = config.numWorker;
  9.  
  10. // expception elkapása
  11. process.on('uncaughtException', function(err) {
  12.     console.log(err);
  13. });
  14.  
  15. var client = bs.Client(config.bs.host);
  16. // email settings
  17. email.settings = config.email;
  18.  
  19.  
  20. if (cluster.isMaster && numCPUs > 1) {
  21.     var worker = new Array();
  22.     // Fork workers.
  23.     for (var i = 0; i < numCPUs; i++) {
  24.         worker[i] = cluster.fork();
  25.     }
  26.    
  27.     // if worker died
  28.     cluster.on('death', function(worker) {
  29.         console.log('mailer worker ' + worker.pid + ' died. Restart...');
  30.         cluster.fork();
  31.     });
  32.    
  33. } else {
  34.     console.log('Mailer worker started...');
  35.     // worker
  36.     client.watch(tube).onSuccess(function(data) {
  37.         function resJob() {
  38.             client.reserve().onSuccess(function(job) {
  39.                 console.log('reserved', job);
  40.                 var mail = JSON.parse(job.data);
  41.                 email.send(mail);
  42.  
  43.                 client.deleteJob(job.id).onSuccess(function(del_msg) {
  44.                     console.log('deleted', job.id);
  45.                     resJob();
  46.                 });
  47.             });
  48.         }
  49.  
  50.         resJob();
  51.     });
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement