Повторные уведомления раздражают пользователей и менеджеров: одно событие превращается в несколько одинаковых push, email или Telegram-сообщений.

Если уведомления связаны с заказами, оплатами или задачами, дубли создают путаницу и лишнюю работу.

Коротко: нужно отделить повторную доставку события от повторной отправки уведомления.

Почему это происходит

Причины: пользователь подписан несколько раз, webhook пришел повторно, очередь сделала retry, cron запустился дважды, событие не имеет уникального id или разные каналы отправляют одно и то же без общего контроля.

Что проверить сначала

  • сколько подписок у пользователя
  • сколько событий было создано
  • как работает очередь отправки
  • есть ли уникальный ключ уведомления
  • какие каналы включены одновременно

Как я решаю такую задачу

Я прослеживаю путь одного события до всех отправленных уведомлений.

  • нахожу событие и все отправки
  • проверяю подписки и очередь
  • добавляю уникальный ключ отправки
  • исправляю retry и cron
  • тестирую повторное событие и временную ошибку

Что подготовить

  • пример пользователя или события
  • время дубля
  • каналы уведомлений
  • доступ к логам
  • ожидаемое правило отправки

Каким должен быть результат

Один заказ, платеж или комментарий должен создавать одно уведомление в нужном канале, даже если webhook или очередь повторились.

Чего лучше не делать

Не отключайте все повторные попытки отправки. Лучше сделать отправку идемпотентной, чтобы не терять уведомления при временном сбое.

FAQ

Почему push приходит дважды только некоторым пользователям?

У них может быть несколько активных подписок после смены браузера или устройства.

Можно ли чистить старые подписки?

Да, это полезно делать при ошибках доставки или повторной регистрации.

Webhook может быть причиной?

Да, если повторный webhook создает новое уведомление.

Нужна ли таблица отправок?

Для надежной системы уведомлений часто да.

Нужна похожая задача?

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку или пример ошибки, и я скажу, как безопасно подойти к исправлению.

Итог

Дубли уведомлений решаются через контроль события, подписки и уникальной отправки, а не только через отключение одного канала.