Статус интеграций
Статус интеграций Инцидент #EX-0913
устранено

Задержка синхронизации календаря бронирований Exely

10 сентября 2026 · длительность 51 минута · интеграция: Exely (бронирования)
Интеграция
Exely
Затронуто объектов
212
Записей календаря
1 180
Длительность
51 мин

Хронология

Обнаружено10 сен, 14:32 МСК
Монитор синхронизации зафиксировал рост очереди задач Exely и превышение порога задержки (>3 мин) для 40% объектов с активными бронированиями.
Расследование начато10 сен, 14:38 МСК
Дежурный инженер подтвердил инцидент, приостановил автоматические ретраи, чтобы не усугублять нагрузку на очередь, и начал разбор логов воркера синхронизации.
Причина найдена10 сен, 15:02 МСК
Обнаружено, что Exely без предупреждения снизила лимит запросов на партнёрском токене с 120 до 40 запросов/мин. Батч-джоб продолжал слать запросы по старой квоте, получал 429 и не откатывался на меньший размер пачки, из-за чего задачи копились в очереди Cloudflare Queues.
Исправление развёрнуто10 сен, 15:17 МСК
Выкатили hotfix: воркер синхронизации переведён на адаптивный размер пачки с учётом заголовка X-RateLimit-Remaining, лимит явно снижен до 35 запросов/мин с запасом. Запущена ручная разгонка накопленной очереди.
Устранено10 сен, 15:23 МСК
Очередь полностью разобрана, время синхронизации календаря вернулось к норме (<30 сек). Инцидент закрыт, за системой наблюдали ещё 2 часа — повторов не было.

Влияние

Что произошло: в течение 51 минуты обновления бронирований между CRM и Exely обрабатывались с задержкой вместо привычных 10–30 секунд. Часть новых бронирований и отмен не появлялась в календаре объекта сразу.

Кого затронуло: 212 объектов размещения с активной интеграцией Exely (из 340 подключённых), около 1 180 отдельных записей календаря (заезды, выезды, блокировки дат) прошли синхронизацию с опозданием.

Потери данных: отсутствовали — все записи были доставлены после устранения инцидента, ни одно бронирование не потерялось и не задвоилось. Риск двойного бронирования на пике инцидента оценён как низкий: прямые продажи через сайт продолжали писать в CRM напрямую, минуя очередь Exely.

Причина и меры

Первопричина — незадокументированное снижение партнёрского rate-limit'а на стороне Exely (со 120 до 40 запросов в минуту) без изменения версии API. Наш батч-джоб синхронизации календаря был жёстко настроен на старую квоту и не умел адаптироваться к ответу 429 Too Many Requests иначе, чем через фиксированный экспоненциальный ретрай, что при постоянно превышаемом лимите приводило к нарастающей очереди, а не к её сокращению.

Что изменили:

  • Воркер синхронизации теперь читает заголовки лимита из ответа Exely и динамически подстраивает размер и частоту пачек.
  • Добавлен отдельный алерт на резкое изменение эффективного rate-limit'а партнёрского API, до того как он превратится в рост очереди.
  • Очередь Cloudflare Queues получила верхний порог глубины с автоматическим оповещением дежурного инженера.
  • Договорились с Exely о уведомлении об изменениях лимитов заранее по отдельному каналу.
exely-sync-worker cloudflare-queues rate-limit postmortem
Назад к статусу интеграций