Ejemplo n.º 1
0
module.exports = function(app, config) {

  var jobs = kue.createQueue({
    redis: {
      port: config.redis.port,
      host: config.redis.host,
      auth: config.redis.auth
    }
  });

  jobs.promote();

  var jobs_path = path.join(__dirname, '../jobs');
  fs.readdirSync(jobs_path).forEach(function(file) {
    if (/(.*)\.(js$|coffee$)/.test(file)) {
      require(jobs_path + '/' + file)(kue, jobs);
    }
  });

  if (app.get('env') === 'development') {
    kue.app.listen(3001);
    console.log('kue server monitor satret port 3001');
  };

  // global.kue = kue;
  global.jobs = jobs;

};
Ejemplo n.º 2
0
 __startKue: function () {
   if (nconf.get('kue:enabled')) {
     // start kue UI
     kue.app.listen(nconf.get('kue:port'), nconf.get('kue:host'), () => {
       debug('service queue interface listening on ' + nconf.get('kue:host') + ':'
         + nconf.get('kue:port'));
     });
   }
 },
Ejemplo n.º 3
0
 return __awaiter(this, void 0, void 0, function* () {
     if (!this.config.ui)
         return;
     if (this.config.ui.basicAuth) {
         this.app.express.use(basicAuth(this.config.ui.basicAuth.username, this.config.ui.basicAuth.password));
     }
     if (this.config.ui.title) {
         kue.app.set('title', this.config.ui.title);
     }
     this.app.express.use(kue.app);
 });
Ejemplo n.º 4
0
exports.init = function (showGUI, fn) {
    jobs = kue.createQueue(),
            Job = kue.Job;

    if (jobs == null) {
        fn("Problem creating queue!");
    } else {
        fn("Queue created!");
    }
    if (showGUI) {
        kue.app.listen(3000);
        fn("GUI available on port 3000");
    }
}
service.queue.init = function(config) {

  service.queue.ITEM_ATTEMPTS = config.attempts || service.queue.ITEM_ATTEMPTS;

  service.queue.ITEM_LIMIT = config.limit || service.queue.ITEM_LIMIT;

  service.queue.ITEM_CONCURRENCY =
      config.concurrency || service.queue.ITEM_CONCURRENCY;

  service.queue.ITEM_DELAY = Math.ceil(
      service.queue.ITEM_LIMIT / service.queue.ITEM_CONCURRENCY);

  service.queue.PORT = Number(config.port) || service.queue.PORT;

  kue.app.listen(service.queue.PORT);
  console.log('UI started on port ' + String(service.queue.PORT) + '\n');
};
Ejemplo n.º 6
0
    function initWorkers(workers, services, cronOnly) {

      for (var folder in workers) {
        for (var job in workers[folder]) {

          var workerInstance = new worker(),
            jobName = folder + ':' + job;

          workers[folder][job](workerInstance, services, debug('worker:' + jobName));

          if (!workerInstance.job) {
            throw new Error(jobName + ' does not have a job function defined!');
          }

          var concurrency = workerInstance.options.concurrency || 1;

          if (cronOnly && workerInstance.options.frequency) {
            createCron(jobName, workerInstance.options.frequency);
          }

          queue.process(jobName, concurrency, workerInstance.job);

        }
      }

      if (cronOnly) {

        queue.on('job complete', handleJobComplete);
        queue.on('job failed', handleJobComplete);
        queue.promote(); //check delayed jobs with a timer
        kue.app.listen(config.get('kue:adminPort'));

      }

      process.on('SIGTERM', gracefulShutdown);
      process.on('SIGINT' , gracefulShutdown);

    }
Ejemplo n.º 7
0
const PORT = 8081;
const kue = require('kue');
kue.createQueue({
  redis: {
    host: 'swarm-redis'
  }
});
kue.app.listen(PORT);
Ejemplo n.º 8
0
const kue = require('kue')
const port = process.env.PORT || 5000

kue.createQueue({
  prefix: process.env.KUE_PREFIX,
  redis: process.env.REDIS_URL || 'redis://redis:6379'
})

console.log(`kue running on port ${port}`)
kue.app.listen(port)
Ejemplo n.º 9
0
var cmd           = solidbot.bots.cmd

var crawler       = require('../')

// init
var interval = 4
var queue    = kue.createQueue()


// cron
new CronJob('*/'+ interval +' * * * * *', function() {
  console.log('Running Cron every '+ interval +' seconds')


}, null, true, 'America/Los_Angeles')


// single crawler
queue.process('crawler', crawler.bots.crawler)

// per site crawlers
var sites = [ 'www.reddit.com' ]

for (var i = 0; i < sites.length; i++) {
  var site = sites[i]
  queue.process('crawler' + '/' + sites[i], crawler.bots.crawler)  
}

// server
kue.app.listen(3006)
Ejemplo n.º 10
0
var jobs = kue.createQueue();

jobs.process('createSnapshot', function (job, done) {
  var snapshot = job.data;

  phantom.create(function (ph) {
    ph.createPage(function (page) {
      page.set('viewportSize', { width: snapshot.width, height: snapshot.height });
      page.set('clipRect', { top: 0, left: 0, width: snapshot.width, height: snapshot.height });
      page.open(snapshot.url, function (status) {
        page.evaluate(function() {
          document.body.bgColor = 'white';
        });
        setTimeout(function () {
          page.render('public/snapshots/' + snapshot.fileName + '.png', function () {
            ph.exit();
            done();
            jobs.create('snapshotCreated', {
              title: snapshot.title,
              fileName: snapshot.fileName
            }).save();
          });
        }, 200);
      });
    });
  });
});

kue.app.listen(5000);
Ejemplo n.º 11
0
var zmq = require('zmq');
var sock = zmq.socket('sub');
var zlib = require('zlib');
var kue = require('kue');

var queue = kue.createQueue({
    redis: {
        host: 'redis'
    },
    disableSearch: true  // Disables that pesky indexing overhead
});
var kue_app = kue.app.listen(3000);
kue.app.set('title', 'EMDR Job Monitor');

// Connect to the first publicly available relay.
sock.connect('tcp://relay-us-east-1.eve-emdr.com:8050');
// No filtering
sock.subscribe('');

process.once('SIGINT', function() {
    console.error("Shutting down gracefully...");
    sock.unsubscribe('');
    sock.close();
    kue_app.close();
    queue.shutdown(function(err) {
        queue.removeAllListeners();
        if (err)
            console.error(err);
        process.exit();
    }, 60000);
});
Ejemplo n.º 12
0
'use strict';
var EMPTYQUEUE = process.argv[2] === '--clean' ? true : false;

var request = require('request');
var kue = require('kue'),
queue = kue.createQueue();
kue.app.listen(8080);

var twitterData = [];

var states = {
	twitterdata: false,
	queued: 0,
	sent: 0,
	completed: 0,
	success: 0,
	failed: 0
};

if(!EMPTYQUEUE) {
	request('http://localhost:3000/tweet_imports.json', function (error, response, body) {
		if (!error && response.statusCode == 200) {
			console.log(body);
			twitterData = body;
			states.twitterdata = true;
			startKue();
		} else {
			console.log(error);
			console.log(response);
		}
	});
Ejemplo n.º 13
0
  var hashes = '';

  if (pkg.keywords && pkg.keywords.length && pkg.keywords instanceof Array) {
     pkg.keywords.map(function(v){
      return v.replace(/\s/,'-');
    });
    hashes = ' #' + pkg.keywords.join(' #');
  } else if (!(pkg.keywords instanceof Array)) {
    hashes = ' #' + pkg.keywords;
  }

  var summ = 'undefined' != typeof doc.stars ? ' ★' + doc.stars : '';
  summ += 'undefined' != typeof doc.forks ? ' ⑂' + doc.forks : '';
  var desc = pkg.description ? ' → ' + pkg.description : '';

  var text = '"' + pre + pkg.repo + short +
      (pkg.twitter ? (' from ' + pkg.twitter + '"') : '"') +
      (pkg.version ? (' [' + pkg.version + ']') : '') +
      desc +
      hashes;

  text = truncate(text, length || 135 - summ.length, '…');
  text += summ;

  return text;
}

// start the UI
kue.app.listen(3010);
console.log('UI started on port 3010');
Ejemplo n.º 14
0
var startWebUI = function () {
    var kue = require("kue");
    kue.redis.createClient = misc.createRedisClient;
    kue.app.listen(3000);
};
Ejemplo n.º 15
0

console.log(action);

for(var name in action){
    
    logger.debug(name);
    // make job process 
    jobs.process(name, action[name]);    
    
}

var actions = {"rpc":action.rpc, "callproc":action.callproc};

//jobs.process('rpc', action.rpc);
//jobs.process('callproc',action.callproc);

for(var name in actions){
  //  logger.debug("action:", name);
   // jobs.process(name, actions[name]);    
    
}

var server_conf = nconf.get("server")

logger.debug("port:", server_conf.port)

kue.app.listen(server_conf.port);


Ejemplo n.º 16
0
}, function (error) {
    if (error) {
        console.trace('elasticsearch cluster is down!');
    } else {

        //Step 0
        elasticClient.indices.delete({
            index: '_all'
        },function(err,resp){
            if(err){
                return console.log('removing indices failed')
            }
            //Step 2
            var indexName = 'authtokens';
            elasticClient.indices.create({
                index: indexName,
                body: {
                    "mappings": {
                        "googlePlus": {
                            "_timestamp": { 
                                "enabled": true
                            }
                        }
                    }
                }
            },function(err,resp){
                if(err)
                    console.log('Creating index '+indexName+' failed --'+err);
            });
        });


        //Step 3
        var kue = require('kue')
          , queue = kue.createQueue();
        
        queue.active( function( err, ids ) {
            ids.forEach( function( id ) {
                kue.Job.get( id, function( err, job ) {
                    // Your application should check if job is a stuck one
                    job.remove();
                });
            });
        });
        
        queue.inactive( function( err, ids ) {
            ids.forEach( function( id ) {
                kue.Job.get( id, function( err, job ) {
                    // Your application should check if job is a stuck one
                    job.remove();
                });
            });
        });
        
        queue.failed( function( err, ids ) {
            ids.forEach( function( id ) {
                kue.Job.get( id, function( err, job ) {
                    // Your application should check if job is a stuck one
                    job.remove();
                });
            });
        });

        queue.complete( function( err, ids ) {
            ids.forEach( function( id ) {
                kue.Job.get( id, function( err, job ) {
                    // Your application should check if job is a stuck one
                    job.remove();
                });
            });
        });

        kue.app.listen(4000);
    }
});
Ejemplo n.º 17
0
var kue       = require('kue');
var jobs      = kue.createQueue({ disableSearch: true });
var process   = require('./process.js');

kue.app.set('title', 'Emblaze Queue');
kue.app.listen(3001);
console.log('Kue listening on port', 3001);

module.exports = {

  queueJob: function (images) {
    console.log('Queing images', images);

    // Extract the image paths
    var imagePaths = [];
    for (var i = images.length - 1; i >= 0; i--) {
      var img = images[i];
      imagePaths.push(img.path);
    }

    var job = jobs.create('process-image', {
        title: 'Render an animated gif',
        images: imagePaths,
        template: 'swipe-up-down'
    });

    // Event callbacks
    job.on('complete', function(){
      console.log("Job complete");
    }).on('failed', function(){
      console.log("Job failed");
Ejemplo n.º 18
0
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var execFile = require('child_process').execFile;
var spawn = require('child_process').spawn;
var kue = require('kue');
var codes = require('../response_codes');
var async = require('async');

var jobs = kue.createQueue();
kue.app.listen(9090);

router.get('/machines', function(req, res) {
  if (req.session.user) {
    var User = mongoose.model('User');
    var tmp_machine = {};
    var machines = [];
    User.findOne({ username: req.session.user })
    .populate('access')
    .exec(function(err, user) {
      async.each(user.access, function(machine, done) {
        execFile('./scripts/get_status.sh', [machine.hostname], function(err, status, stderr) {
          tmp_machine = {};
          tmp_machine.hostname = machine.hostname;
          tmp_machine.username = machine.username;
          tmp_machine.password = machine.password;
          tmp_machine.createdAt = machine.createdAt;
          tmp_machine.accessors = machine.accessors;
          status = status.split("\n");
          tmp_machine.status = status[0];
          tmp_machine.ip = status[1];
Ejemplo n.º 19
0
var kue = require('kue'),
	jobs = kue.createQueue();

kue.app.listen(3001);

jobs.promote(500);

exports.sendMail = sendMail = function sendMail (data) {
	console.log('new sendMail job');	
	var job = jobs.create('sendMail', data);
	job.delay(500);
	job.attempts(20);
	job
	.on('complete', function (){
		jobResponse(false, job);
	})
	.on('failed', function (){
		jobResponse(true, job);
	})

	job.save();
};

exports.renderPDF = renderPDF = function renderPDF (data) {
	console.log('new renderPDF job');	
	var job = jobs.create('renderPDF', data);
	job.delay(500);
	job.attempts(20);
	job
	.on('complete', function (){
		jobResponse(false, job);
Ejemplo n.º 20
0
          DB.job.updateJobStatus(job._id, 'queued', function(err, job) {
            if (!err) console.log('Job changed status ');
          })
        });
      } else {
        console.log('Error found: ', err);
      }
    });    
  },

  init: function() {
    var self = this;
    DB.util.ping(function(err, result) {
      if (!err) {
        self.addNew();
      }
    });
  }

};

var JobFail = {

  check: function() {

  }
};

// Web interface for the kue
kue.app.listen(3030);
Ejemplo n.º 21
0
kueJobListen = function() {
    /* kue UI listening port */
    var kuePort = config.kue.ui_port || 3002;
    kue.app.listen(kuePort, '127.0.0.1');
}
Ejemplo n.º 22
0
var kue = require('kue'),
    config = require('config'),
    logger = require('common/core/logs')(module);

kue.createQueue();
kue.app.listen(config.get("kue:port"));
logger.info('Kue ui started on ' + config.get("kue:port") + ' port. http://localhost:' + config.get("kue:port"));
Ejemplo n.º 23
0
const queue = kue.createQueue(redisConfig);
queue.watchStuckJobs(1000 * 10);

queue.on('ready', () => {
  console.info('Queue is ready!');
});

queue.on('error', (err) => {
  console.error('There was an error in the main queue!');
  console.error(err);
  console.error(err.stack);
});


// Set up UI
kue.app.listen(process.env.KUE_PORT);
kue.app.set('title', 'Kue');

function createPayment(data, done) {
  queue.create('payment', data)
    .priority('critical')
    .attempts(8)
    .backoff(true)
    .removeOnComplete(false)
    .save(err => {
      if (err) {
        console.error(err);
        done(err);
      }
      if (!err) {
        done();
Ejemplo n.º 24
0
app.get('/description/:pid/static/:static', function(req, res) {
    res.send('not implemented yet ' + req.params.pid + req.params.static);
});

app.get('/contest_details/:cid', function(req, res) {
    var path = 'data/contests/' + req.params.cid + '.json';
    helper.serve_json(path, res);
});

app.get('/contests/:uid', function(req, res) {
    var path = 'data/users/' + req.params.uid + '.json';
    helper.serve_json(path, res);
});

app.get('/jquery.min.js', function(req, res) {
    helper.serve_html("jquery.min.js", res);
});

app.io.route('submit', function(req) {
    var job = jobs.create("grade", req.data);

    job.on('complete', function() {
        req.io.emit('talk', "graded successfully");
    });

    job.save();
});

kue.app.listen(3000);
Ejemplo n.º 25
0
exports = module.exports = function(app) {

  var kue = require('kue')
    , request = require('request')
  	, fs = require('fs')
  ;
  //create queue object in app
  app.queue = {};

  var jobs = kue.createQueue()
    , Job = kue.Job;

  //create job

  app.db.models.Realm.find({}, {_id: 0, 'slug': 1}).exec(function(err, realms) {

  	function updateAll() {

	  	for (var realm in realms) {
	  		if(realms.hasOwnProperty(realm)) {
		  		console.log("- creating job %s", realms[realm].slug);

		  		var job = jobs.create('update realm', {
		  			title: realms[realm].slug
		  		  , url: __dirname + "/data/" + realms[realm].slug + ".json"
		  		  , slug: realms[realm].slug
		  		}).attempts(3).save();

		  		job.on('complete', function(){
				  console.log("Job complete");
				}).on('failed', function(){
				  console.log("Job failed");
				}).on('progress', function(progress){
				  process.stdout.write('\r  job #' + job.id + ' ' + progress + '% complete');
				});
		  	}
	  	}
	  	setTimeout(updateAll, 86400000); // 1 day

	}

    updateAll();

  });

  //process job one at a time

  jobs.process('update realm', 3, function(job, done){
	  
	  var url = job.data.url;
	  var slug = job.data.slug;
	  var frames = job.data.frames;

	  console.log("job process %d ", job.id);
	  console.log("job process url ", url);
	  
	  function next(i) {

	  	try {

	  		/*
	  		 * Get remote file from
	  		 * Blizzard AH API
	  		 *
	  		 */

	  		var remoteUrl = 'http://us.battle.net/api/wow/auction/data/' + slug;

	  		request({url: remoteUrl, followRedirect: false}, function(err, response, body) {
	  			
	  			if (err) return done(err);

	  			if (!err && response.statusCode == 200) {

	  				try {
	  					console.log("Remote data received.");

	  					/*
	  					 * Read URL string and
	  					 * save local copy
	  					 * 
	  					 * @variables
	  					 * data, URL, headers
	  					 *
	  					 */
	  					var data = JSON.parse(body);
	  					var URL = data.files[0].url;
	  					var headers = {
	  						"Accept-Encoding": "gzip",
							"Content-Encoding": "gzip",
							"Content-Type": "application/json; charset=utf-8"
	  					};

	  					request({url: URL, followRedirect: false, headers: {}}, function(error, res, b) {
	  						
	  						if (error) return done(error);
	  						
	  						if (!error && res.statusCode == 200) {

	  							try {

	  								console.log("Remote JSON downloaded successfully from " + URL);

	  								processLocalFile();
	  							
	  							} catch(e) { done(e); }
	  						
	  						} else {

	  							// got an error page as a response
	  							return done();

	  						}

	  					}).pipe(fs.createWriteStream(url));

	  				} catch(e) { done(e); }
	  			}
            
            });

	  		/*
	  		 * read local file
	  		 * and save to mongodb
	  		 *
	  		 */

	  		function processLocalFile() {

	  			console.log("Processing local file");

		  		var fileContents = fs.readFile(url,'utf8', function(err, data) {

		  			if (err) return done(err);

		  			if (data.length > 0) {
		  				var schema = JSON.parse(data);
				  		var length = schema.length;
						var query = { 'realm.slug': slug };

					  	app.wowpro.models.Auction.findOneAndUpdate(query, { $set: schema }, { upsert: true }, function(err, res) {
					  		if (err) return done(err);
					  		if (res) done();
					  		else next(i + 1);
					  	});
		  			}
		  		});

		  	}

	  	} catch(e) { done(e); }

	  }

	  next(0);

  });

  // remove stale jobs
  jobs.on('job complete', function(id){
  	Job.get(id, function(err, job){
  		if (err) return;
  		job.remove(function(err){
  			if (err) throw err;
  			console.log('removed completed job #%d', job.id);
  		});
  	});
  });

  kue.app.set('title', 'Warcraft Professonal');
  kue.app.listen(3001, function() {
  	console.log("kue started");
  });
}
Ejemplo n.º 26
0
Pusher.prototype.run = function(port) {
  if (!this.jobs)
    return;
  kue.app.set('title', pkg.name + ' v' + pkg.version);
  return kue.app.listen(port || 3001);
}
Ejemplo n.º 27
0
var kue = require('kue');
kue.app.set('title', 'Confluence Kue Monitor');
kue.app.listen(12001);
Ejemplo n.º 28
0
var kue = require('kue');

console.log('Creating queue @ ' + process.env.host + ':' + process.env.port + '...');

var jobs = kue.createQueue({
  redis: {
    port: process.env.port,
    host: process.env.host,
    auth: process.env.auth
  }
});

var port = 3000;

kue.app.listen(port, function() {
  console.log('GUI server started at port ' + port);
});

jobs.process('email', function(job, done){
  console.log('Processing job', job.id);
  done();
});
Ejemplo n.º 29
0
var kue = require('kue');
kue.app.listen(3000, function(){
	console.log('running at port 3000')
});
Ejemplo n.º 30
0
 * to catch errors.
 *
 * Also spins up default kue interface on 3333 to watch queue behavior
 */


var kue = require('kue');
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var logger = require('./logger');

app.use(bodyParser.json());

app.get('/noop', function(req,res) {
  logger('GET noop: '+JSON.stringify(req.query));
  res.send('');
});

app.post('/noop', function(req,res) {
  logger('From noop: '+JSON.stringify(req.body));
  var rand = (Math.random()*9000)|0;
  setTimeout(function() {
    res.send('got it: '+req.body.num);
  },rand);
});
app.listen(3332);

kue.app.listen(3333);