Как эта модель/сервис будет запускаться и работать, учитывая, что SMS нужно отправить в конкретное время по расписанию?

Сохраняйте запланированную SMS в БД с временем отправки и статусом. Планировщик выбирает наступившие задания, а отдельный worker отправляет их через провайдера.

Короткий ответ

Что ответить на собеседовании

Сохраняйте запланированную SMS в БД с временем отправки и статусом. Планировщик выбирает наступившие задания, а отдельный worker отправляет их через провайдера.

Подробный разбор

Ответ с пояснениями

Сохраняйте запланированную SMS в БД с временем отправки и статусом. Планировщик выбирает наступившие задания, а отдельный worker отправляет их через провайдера.

Это общий вариант архитектуры: исходная модель в вопросе не приведена. Храните время в UTC, учитывая выбранный пользователем часовой пояс при создании задания. Несколько worker-ов должны атомарно захватывать разные задания.

Используйте идентификатор операции для идемпотентности, ограниченные повторы и проверку актуальности перед отправкой. Сбой после отправки, но до записи статуса требует сверки с провайдером, иначе возможен дубль. Не держите долгие задержки только в памяти процесса. «В конкретное время» задавайте как допустимое окно задержки, а не гарантию доставки до секунды.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее