Я создаю приложение, которое будет отправлять запросы статуса пользователям (по электронной почте и смс) на регулярной основе. Я хочу выполнить услугу каждый час, который будет:
- Запрос к базе данных всех запросов, которые необходимо отправить (на основе некоторой логики)
- Отправка запросов через Amazon Simple Email Service (это уже работает)
- Запись записи уведомления о запросе статуса обратно в хранилище данных
Я подумываю об объединении этой серии операций в один контроллер с конечной точкой, которую можно вызывать удаленно, чтобы запустить процесс в приложении rails.
В долгосрочной перспективе я разобью этот процесс на приложение, которое можно запускать независимо от моего приложения rails, но сейчас я просто пытаюсь сделать его простым.
Мое первое желание - построить следующее:
- Контроллер со следующими элементами:
- Метод, который организует шаги, описанные выше (и может вызываться извне)
- Вызов модели
status_request
, которая вернет коллекцию запросов, которые необходимо отправить
- Цикл для перебора ожидающих запросов, который будет:
- Позвоните в мой модуль AWS Simple Email Service, чтобы фактически отправить электронное письмо, и
- Позвоните модели
status_request
, чтобы зарегистрировать запрос обратно в базу данных
- Модель:
- Метод на моей
status_request
модели, который возвращает коллекцию запросов, которые необходимо отправить
- Метод в моей
status_request
модели, который будет регистрировать, что уведомление было отправлено
Поскольку это будет вести себя как служба, которая периодически вызывается из внешнего планировщика, я не думаю, что мне понадобится представление для этой операции. (Конечно, понадобятся представления, чтобы показать пользователям и администраторам, какие запросы были отправлены, но это позже ...).
Как новичок в Rails, я прошу пересмотреть этот подход и любые ваши предложения.
Спасибо!