@dieugene/queuer
v2.0.0
Published
Node.js library for seamless integration with message queues through Yandex Cloud Functions
Maintainers
Readme
Queuer
Node.js библиотека для работы с очередями сообщений через Yandex Cloud Functions.
Описание
Queuer предоставляет простой и удобный интерфейс для отправки сообщений в очереди через Yandex Cloud Functions. Особенно полезна для работы с Telegram ботами и системами обработки сообщений.
Установка
npm install @dieugene/queuerИнициализация
const queuer = require('@dieugene/queuer')();
// Или с указанием ID функции Yandex Cloud
const queuer = require('@dieugene/queuer')('your-yandex-cloud-function-id');По умолчанию используется ID функции из переменной окружения QUEUER_FUNCTION_ID или значение по умолчанию.
API
queuer.post(domain, body, queue_url)
Отправляет сообщение в очередь.
Параметры:
domain(string) - домен для категоризации сообщенийbody(object) - данные для отправкиqueue_url(string, optional) - URL очереди
Пример:
await queuer.post('telegram-bot', {
chat_id: 123456789,
text: 'Привет, мир!'
});queuer.post.item(item)
Отправляет произвольный элемент в очередь.
Параметры:
item(object|string) - элемент для отправки
Пример:
await queuer.post.item({
domain: 'notifications',
user_id: 123,
message: 'Новое уведомление'
});queuer.send_to_queue(input, bot_token, queue_url, domain)
Отправляет данные от бота в очередь.
Параметры:
input- входные данныеbot_token(string) - токен ботаqueue_url(string) - URL очередиdomain(string) - домен
Пример:
await queuer.send_to_queue(
webhookData,
'YOUR_BOT_TOKEN',
'https://your-queue-url.com',
'telegram-bot'
);queuer.is_from_queue(input)
Проверяет, пришли ли данные из очереди.
Параметры:
input- входные данные для проверки
Возвращает: boolean
Пример:
if (queuer.is_from_queue(webhookData)) {
console.log('Данные пришли из очереди');
}queuer.ensureQueueItem(input, value, field)
Проверяет корректность элементов очереди и перенаправляет неправильные.
Параметры:
input- входные данныеvalue- ожидаемое значениеfield(string, optional) - поле для проверки ('queue_url' по умолчанию)
Возвращает: boolean - true если все элементы корректны
Переменные окружения
QUEUER_FUNCTION_ID- ID функции Yandex Cloud (по умолчанию)LOG- включает логирование, если содержит 'QUEUER'
Примеры использования
Telegram бот с очередями
const queuer = require('@dieugene/queuer')();
// Обработка входящего сообщения
async function handleMessage(update) {
if (queuer.is_from_queue(update)) {
// Обработка сообщения из очереди
console.log('Обрабатываем сообщение из очереди');
return;
}
// Отправка в очередь для обработки
await queuer.send_to_queue(
update,
process.env.BOT_TOKEN,
process.env.QUEUE_URL,
'telegram-bot'
);
}Отправка уведомлений
const queuer = require('@dieugene/queuer')();
async function sendNotification(userId, message) {
await queuer.post('notifications', {
user_id: userId,
message: message,
timestamp: Date.now()
});
}Логирование
Для включения логирования установите переменную окружения:
export LOG=QUEUERИли в Node.js:
process.env.LOG = 'QUEUER';Лицензия
ISC
Автор
Eugene Ditkovsky
Поддержка
Если у вас есть вопросы или предложения, создайте issue в репозитории проекта.
