redis-smq
Version:
A simple high-performance Redis message queue for Node.js.
62 lines • 2.18 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const redis_smq_common_1 = require("redis-smq-common");
const index_1 = require("../../index");
const events_1 = require("../../src/common/events/events");
const queue = `queue_${Date.now()}`;
const producer = new index_1.Producer();
const produceForever = (err) => {
if (err)
console.log(err);
else {
if (producer.isGoingUp() || producer.isRunning()) {
const message = new index_1.Message().setBody('some data').setQueue(queue);
producer.produce(message, produceForever);
}
}
};
const consumer = new index_1.Consumer();
consumer.consume(queue, (message, cb) => cb(), (err) => err && console.log(err));
consumer.on(events_1.events.UP, () => {
console.log('UP');
});
consumer.on(events_1.events.DOWN, () => {
console.log('DOWN');
});
const serialOnOff = (cb) => redis_smq_common_1.async.waterfall([
(cb) => consumer.run((err) => cb(err)),
(cb) => consumer.shutdown((err) => cb(err)),
(cb) => consumer.run((err) => cb(err)),
(cb) => consumer.shutdown((err) => cb(err)),
(cb) => consumer.run((err) => cb(err)),
(cb) => consumer.shutdown((err) => cb(err)),
(cb) => consumer.run((err) => cb(err)),
(cb) => consumer.shutdown((err) => cb(err)),
(cb) => consumer.run((err) => cb(err)),
(cb) => consumer.shutdown((err) => cb(err)),
], cb);
let queueManager = null;
redis_smq_common_1.async.waterfall([
(cb) => index_1.QueueManager.createInstance({}, (err, instance) => {
if (err)
cb(err);
else {
queueManager = instance;
queueManager === null || queueManager === void 0 ? void 0 : queueManager.queue.create(queue, false, (err) => cb(err));
}
}),
(cb) => producer.run((err) => cb(err)),
(cb) => {
produceForever();
serialOnOff(cb);
},
], (err) => {
if (err)
console.log(err);
else {
producer.shutdown();
consumer.shutdown();
queueManager === null || queueManager === void 0 ? void 0 : queueManager.quit(() => void 0);
}
});
//# sourceMappingURL=combined-run.js.map
;