UNPKG

node-tenancy

Version:

Making multi-tenancy easier with Node.js & typescript

64 lines (49 loc) 1.46 kB
## Redis Example of Pub-Sub with Redis: ```dotenv #env variables that must exists QUEUE_DRIVER=redis QUEUE_CONNECTION= QUEUE_TENANT_CONNECTION= ``` ```js const queueClass = require('queue'); queueClass.getMessages('test', true); queueClass.publishMessage('test', {'message': 'test'}, true); ``` `queue.js` ```js const {queue, config} = require('node-tenancy'); //connection must be set if you are not using middleware function setConnectionConfig(is_tenant_connection) { if (is_tenant_connection) { config.setConfig({ 'connection': 'tenant', }); } else { config.setConfig({ 'connection': 'central', }); } } async function getMessages(channel_name, is_tenant_connection = false) { setConnectionConfig(is_tenant_connection); // queue.connect(url = null, options = {}) const client = await queue.connect(); await client.subscribe(channel_name, (message) => { console.log(message); }, true); await client.quit(); } async function publishMessage(channel_name, message, is_tenant_connection = false) { setConnectionConfig(is_tenant_connection); // queue.connect(url = null, options = {}) const client = await queue.connect(); await client.publish(channel_name, JSON.stringify(message)); setTimeout(function () { client.quit(); }, 500); } module.exports = {getMessages, publishMessage}; ``` #### **Just be careful to provide a close connection in the callback function if needed.**