Отмена останавливает ещё не отправленные сообщения, но не отзывает уже принятые провайдером. Для находящихся в обработке нужен отдельный учёт результата, чтобы не обещать невозможный откат.
Мы отменили кампанию во время отправки — что должно произойти с уже отправленными и оставшимися сообщениями?
Отмена останавливает ещё не отправленные сообщения, но не отзывает уже принятые провайдером. Для находящихся в обработке нужен отдельный учёт результата, чтобы не обещать невозможный откат.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Отмена останавливает ещё не отправленные сообщения, но не отзывает уже принятые провайдером. Для находящихся в обработке нужен отдельный учёт результата, чтобы не обещать невозможный откат.
Workers должны проверять состояние кампании перед отправкой, а выдача новых заданий прекращается. Гонку между проверкой и внешним запросом полностью убрать одним флагом нельзя: часть запросов может уже выполняться. Их результат фиксируют как отправлено, ошибка или неизвестно с последующей сверкой. Оставшимся сообщениям назначают cancelled, а пользователю показывают фактические счётчики и ограничения отмены.