Подскажите пожалуйста, есть две яндекс функции, которые обмениваются между собой

сообщенями через YMQ.
Одна функция пишет в очередь, вторая запускается по триггеру из очереди.

Чтобы обеспечить гарантированное чтение в случае отказа функции которая читает из очереди по триггеру.
Я создал две FIFO очереди, в первую я записываю сообщения, и в случае проблем с чтением отправляю во вторую очередь.
Во второй очереди сделал так же, в случае не прочтения отправляю в первую очередь.
И добавил два триггера на чтение сообщений на каждую из очередей.

Правильно ли я делаю, чтобы обечпечить 100% чтение сообщений в случае отказа функции которая читает?

5 ответов

12 просмотров

Ну ты сообщение или почитал или нет. Если не почитал, то оно осталось в очереди

Максим-Кот Автор вопроса
Denis
Ну ты сообщение или почитал или нет. Если не почит...

Не до конца понимаю. Если триггер сработал, и фунция отработала без ошибок = прочитал сообщение Если триггер сработал и фунция упала = не прочтал сообщение, и произойдет повторная попытка. Правильно?

Максим Кот
Не до конца понимаю. Если триггер сработал, и фунц...

Хороший вопрос. Я думаю облако помечает месседж как доставленный как только функция была успешно вызвана (но не факт что завершились успешно), иначе это неправильно и нелогично. Но лучше убедиться в доке триггеров, в какой момент облако помечает месседж доставленным

Сообщение полученное из очереди на заданное время помечается что оно находится в обработке. Если в течение этого таймаута сообщение не будет обработано и удалено, оно снова станет доступно для чтения. Триггер делает это все за вас. Он вычитывает сообщение и если функция-обработчик не выбросит исключения, то по окончании выполнения фции триггер удалит сообщение из очереди. YMQ реализует API Amazon SQS. Вы можете обратиться к туториралам про SQS, чтобы подробнее разобраться с тем как оно работает.

Кмк, fifo лучше не использовать в таком сценарии, а триггер вешать именно на ymq

Похожие вопросы

Обсуждают сегодня

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
На чём в основном щас пишут мини апы? Vuejs?
Goot evening Not everyone
6
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
Приветствую. А не подскажете какие ограничения есть на использования api метода setMyName ? Несколько раз сменил имя бота и получил бан на 2 месяца на смену имени.
Slick Slack
8
Карта сайта