pdfer-job-pusher
Version:
Push new pdf extract jobs out to workers
49 lines (42 loc) • 1.31 kB
JavaScript
var should = require('should');
var axon = require('axon');
var rk = require('required-keys');
var inspect = require('eyespect').inspector();
module.exports = function (data) {
var keys = ['config', 'logger'];
var err = rk.truthySync(data, keys);
should.not.exist(err);
var config = data.config;
var seaport = data.seaport || require('seaport');
var seaportHost = config.get('seaport:host');
var seaportPort = config.get('seaport:port');
var ports = seaport.connect(seaportPort);
var port = ports.register('pusher');
var socket = axon.socket('push');
socket.format('json');
socket.bind(port);
var open = true;
process.on('SIGINT', function() {
ports.free(port);
inspect(port, 'pusher process SIGINT, free pusher service port from seaport registry');
socket.close();
var open = false;
process.exit();
});
process.on('SIGTERM', function() {
ports.free(port);
inspect(port, 'pusher process SIGTERM, free pusher service port from seaport registry');
if (open) {
var open = true;
}
process.exit();
});
process.on('exit', function() {
ports.free(port);
inspect(port, 'pusher process exit event, free pusher service port from seaport registry');
if (open) {
var open = true;
}
});
return socket;
};