Я даю пользователям возможность получать, скажем, электронные письма на периодичность их выбора, например:Сохранение периодичности в Rails
Every day at 5am
или
Every Friday at 11pm
или даже
Every second Monday of the month at 12am
Каким будет мой лучший выбор для хранения данных такого типа, чтобы довести его до Whenever
gem?
Update
Я был в состоянии решить этот вопрос с советом @mudasobwa «ы в сочетании с cron_parser
камнем. Поток процесса: вход
- Получить пользователь из отобранного поля на интерфейсе
- Разобрать его на внутреннем интерфейсе и де-коде в формат хрон (например
7
будет означать, что мне нужно будет отправлять электронную почту каждую неделю , поэтому код может быть «1 1 * * 1
»), сохранить значение какperiodicity
. - Используйте драгоценный камень
cron_parser
, чтобы сгенерировать форму датыnext_run
, которая используется, чтобы сообщать всякий раз, когда драгоценный камень выполняет задания, которые они должны выполнять.
Да в теории это довольно ясно, но что я должен хранить в базе данных? Мой процесс заключается в том, что всякий раз, когда каждый час проверяет получателей, которые еще не получили свои сообщения (поэтому он ищет устаревшие сообщения) и отправляет их. Эти сообщения имеют столбец, называемый next_send, который хранит дату/время, когда сообщение должно быть отправлено. Но чтобы получить дату в этом столбце, мне нужно проанализировать ее с начального ввода пользователя. –
В базе данных вы должны хранить ** строки в необработанном формате cron **, как указано в моем ответе дважды. Smth like '" 0 0 27-31 * * "'. – mudasobwa
Спасибо, так что в двух словах я бы сохранил эти необработанные данные cron и проанализировал его, чтобы получить дату next_run и установить его на моей модели? –