@lskjs/rabbit v3.18.0
LSK.js – rabbit
@lskjs/rabbit – LSK module for rabbit.
Table of contents
⌨️ Install
# yarn
yarn i @lskjs/rabbit axios bluebird lodash
# npm
npm i @lskjs/rabbit axios bluebird lodash
async startDynamicPrefetch() {
const { rabbit } = this;
const { messageCount } = await rabbit.assertQueue(this.queue);
if (messageCount > 10000) {
rabbit.listenChannel.prefetch(100);
} else {
rabbit.listenChannel.prefetch(10);
}
setTimeout(() => this.startDynamicPrefetch(), 1000);
}
async run() {
await super.run();
this.startDynamicPrefetch();
}
const rabbit = await this.module('rabbit');
await rabbit.assertExchange('test', 'headers'); // создание exchange
await rabbit.bindQueue('test_ch', 'test', '', { type: 'ch' }); // присоединение queue к exchange
await rabbit.publish('test', '', { _id: 1 }, { headers: { type: 'ch' } }); // отправка сообщения
await rabbit.bindQueue('test_es_ch', 'test', '', { es: true, ch: true }); // пример с несколькими headers
await rabbit.publish('test', '', { _id: 1 }, { headers: { es: true, ch: true } });
в конфиге есть поле queueOptions - это глобальные options для всех задач которые пишутся в rabbit
"rabbit": {
"uri": "localhost:15672",
"queueOptions": {
"persistent": true,
"expiration": 683576835
}
}
в конфиге с очередями(queues.js) можно указать options для каждой очереди отдельно
queue1: {
queue: 'queue1',
options: {
persistent: true,
headers: {},
priority: 5,
replyTo: 'test',
},
},
queue2: {
queue: 'queue2',
limit: million,
options: {
persistent: true,
headers: {
custom: 'header',
},
priority: 5,
replyTo: 'test2',
},
},
queue3: {
queue: 'queue3',
options: {
persistent: true,
headers: {},
priority: 5,
replyTo: 'test3',
},
},
queue4: {
queue: 'queue4',
options: {
persistent: true, headers: {}, priority: 5, replyTo: 'test4',
},
},
options можно доопределить с помощью 3 аргумента при постановки задачи
await rabbit.sendToQueue('test', { _id: 1 }, { persistent: true }); // отправка сообщения с options
options для задачи генерируются из
1) options которые пробросили при постановки задачи
2) из конфига queues.js для конкретной очереди
3) из глобального конфига
3 этих объекта мерджутся между собой именно в таком порядке
📖 License
This project is licensed under the MIT License - see the LICENSE file for details
👥 Contributors
👏 Contributing
- Fork it (https://github.com/yourname/yourproject/fork)
- Create your feature branch (
git checkout -b features/fooBar
) - Commit your changes (
git commit -am 'feat(image): Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
📮 Any questions? Always welcome :)
6 months ago
6 months ago
10 months ago
6 months ago
6 months ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago