Новое расписание, старые задания
Допустим, сервис заранее ставит отправку отчётов в очередь на неделю вперёд. Клиент меняет ежедневную доставку на еженедельную, но на следующий день снова получает письмо. Настройка сохранилась правильно. Воркер выполнил старое задание.
В системе, которая создаёт задания заранее, смена расписания затрагивает и правило, и уже созданную работу. Я бы проводил такой переход как небольшую миграцию данных.
Сначала нужно разделить задания этого расписания на ожидающие, выполняющиеся и завершённые. Определить момент перехода и часовую зону. Затем приостановить создание и выдачу затронутых заданий, разобраться с уже запущенными и пересчитать ожидающие по новому правилу. Изменения сохранить для проверки и отката, соседние расписания не трогать.
Тестировать нужно с заполненной очередью: создать задания по старому графику, поменять правило, прокрутить контролируемые часы и проверить фактическое выполнение. Лишних отправок и дублей быть не должно, нужные отправки не должны исчезнуть.
Возврат старой настройки тоже не равен откату: он не восстановит очередь и не отменит уже отправленные письма. Перед восстановлением заданий нужно проверить, что успело выполниться.
Результат такой правки стоит смотреть в очереди и истории выполнения, а не только в форме настроек.