31 lines
1 KiB
JavaScript
31 lines
1 KiB
JavaScript
|
// load dependencies
|
||
|
var amqp = require('amqplib/callback_api');
|
||
|
// load helpers
|
||
|
var lbryApi = require('./helpers/lbryApi');
|
||
|
// open a connection and a channel
|
||
|
amqp.connect('amqp://localhost', function(err, conn) {
|
||
|
// open a channel
|
||
|
conn.createChannel(function(err, ch) {
|
||
|
var q = 'task_queue2';
|
||
|
// declare the cue (in case the publisher hasn't made it yet)
|
||
|
ch.assertQueue(q, {durable: true});
|
||
|
// tell the queue to only assign one task at a time to this worker
|
||
|
ch.prefetch(1);
|
||
|
// listen for messages & pass callback for what to do with the msgs
|
||
|
console.log(" [x] Waiting for messages in %s. To exit press ctrl+c", q);
|
||
|
ch.consume(q, function(msg) {
|
||
|
var task = JSON.parse(msg.content.toString());
|
||
|
console.log(` [o] Received a ${task.type} task`);
|
||
|
// initiate the task
|
||
|
switch(task.type) {
|
||
|
case 'publish':
|
||
|
console.log(" [-] publishing:", task.data);
|
||
|
lbryApi.publishClaim(task.data);
|
||
|
break;
|
||
|
default:
|
||
|
console.log(" [-] that task type is not recognized");
|
||
|
console.log(" [x] Done");
|
||
|
}
|
||
|
}, {noAck: true});
|
||
|
});
|
||
|
});
|