Автоматическая доставка отчётов партнёрам в Telegram
Доставку отчётов партнёрам перестроили из хрупкого обработчика в устойчивый конвейер с очередью и повтором. Сетевой сбой Битрикса стал задержкой, а не потерей: через систему идёт до 5 895 доставок в неделю.
Задача
Компания с большой партнёрской сетью регулярно рассылает партнёрам файлы-отчёты в Telegram — сотни отправок в неделю, разные типы отчётов, всё управляется из Битрикс24 и должно храниться с историей. Старая схема держалась на одном обработчике, который при недоступности Битрикса молча не запускал доставку — и отчёты просто терялись, без следа и без повторной попытки.
Что было
- Вся доставка шла через единственный обработчик: при сетевом сбое к Битриксу он молча не находил компанию и не стартовал отправку.
- В один из инцидентов из-за блокировки сети так потерялась основная часть отчётов за неделю — без уведомления, что что-то пошло не так.
- Привязка Telegram-чата партнёра хранила его идентификатор прямо в ссылке-приглашении — потенциальная утечка.
Что сделали
- Перестроили доставку в устойчивый конвейер: элемент в Битрикс24 создаёт тонкий приёмник, который мгновенно кладёт задачу в файловую очередь, а фоновый воркер под systemd разбирает её по очереди.
- Ключевое изменение: если Битрикс временно недоступен, задача не удаляется из очереди — воркер ждёт и повторяет. Сетевой сбой превратился из потери отчётов в короткую задержку, а бизнес-процесс при этом не запускается дважды.
- Дальше по цепочке: бизнес-процесс кладёт файл на Диск, Go-сервис генерирует публичную ссылку, и бот отправляет отчёт партнёру в Telegram.
- Отдельно закрыли безопасность привязки чатов: вместо идентификатора партнёра в ссылке используются одноразовые коды-соли, по одной активной ссылке на партнёра.
Что получилось
- Через конвейер проходит пиковый объём порядка 5 895 доставок за неделю по десяткам типов отчётов.
- Сетевые сбои Битрикса больше не приводят к потере отчётов — очередь дозаливается после восстановления связи.
- Привязка Telegram больше не раскрывает идентификаторы партнёров.
- Вся история отправок хранится в Битрикс24 и управляется менеджером без разработчика.
Имя клиента не раскрывается по NDA. Реальные имена и подробности обсуждаем в брифе.
Похожая задача?
Опишите кратко — за 1–2 дня вернёмся с разбором и оценкой по часам. Если решение тиражное — честно скажем.