惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
博客园 - 聂微东
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
Jina AI
Jina AI
D
Docker
B
Blog
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
D
DataBreaches.Net
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
N
Netflix TechBlog - Medium
月光博客
月光博客
F
Fortinet All Blogs
爱范儿
爱范儿
H
Help Net Security
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
The Cloudflare Blog
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
U
Unit 42

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Интеграция с сервисом рассылок: RabbitMQ, вебхуки и CRON
Гульшат · 2026-06-24 · via Все публикации подряд на Хабре

В этой статье я делюсь практическим опытом проектирования интеграционного решения для CRM-системы.
Статья будет полезна системным аналитикам и разработчикам, которые проектируют асинхронные интеграции с внешними сервисами и хотят избежать потери данных.

Задача

Пользователи CRM-системы могут отправлять как единичные СМС, так и массовые СМС- и email-рассылки.
В рамках интеграции необходимо было реализовать их отправку через внешний сервис-провайдер.

Архитектура

Для решения задачи был спроектирован отдельный микросервис. В его интерфейсе пользователь задаёт параметры, необходимые для отправки СМС и email-рассылок.

При поступлении задачи микросервис отправляет её в RabbitMQ. Для единичных СМС и массовых рассылок предусмотрены отдельные очереди.

Алгоритмы отправки сообщений и массовых рассылок

Отправка единичных сообщений через внешний провайдер

  1. Микросервис подписывается на вебхуки метода единичных СМС-сообщений

  2. При создании СМС в интерфейсе CRM микросервис получает вебхук и инициирует отправку сообщения через API провайдера

  3. Если вебхук не дошёл - микросервис каждый час (условно) по CRON проверяет наличие новых сообщений в CRM

  4. После успешной отправки СМС микросервис каждые 5 минут запрашивает статус у провайдера и обновляет его в CRM. Проверка продолжается, пока статус не станет финальным

Схема отправки единичного сообщения

Схема отправки единичного сообщения

Отправка массовых рассылок через внешний провайдер

  1. Микросервис подписывается на вебхуки методов, отвечающих за СМС- и email-рассылки

  2. При создании рассылки в интерфейсе CRM микросервис получает вебхук и инициирует отправку через API провайдера
    Важно: перед отправкой необходимо создать или обновить список контактов в сервисе провайдера

  3. После успешного создания рассылки микросервис получает сведения о доставке и обновляет их в CRM

  4. Обновление статуса происходит каждые 5 минут до получения финального результата

Схема отправки СМС- или email-рассылки

Схема отправки СМС- или email-рассылки

Заключение

Интеграция с внешним провайдером рассылок - задача, которая требует надёжной архитектуры. Мы выбрали микросервисный подход, добавили резервный канал через CRON и разделили потоки через очереди. Это позволило нам не потерять ни одно сообщение и выдержать пиковые нагрузки.

Ключевые выводы:

  • не полагаться только на вебхуки;

  • добавлять резервные механизмы;

  • разделять разные типы трафика.

Эти принципы применимы не только к интеграциям, связанным с рассылками, но и к любым интеграциям с внешними сервисами.