Упрощенный пример:
У меня есть дела. Это может быть будущее, текущее или позднее в зависимости от времени.
Time State
8:00 am Future
9:00 am Current
10:00 am Late
Итак, в этом примере то-то есть "текущий" с 9:00 до 10:00.
Первоначально я думал о добавлении полей для "current_at" и "late_at", а затем использовал метод экземпляра для возврата состояния. Я могу запросить для всех "текущих" todos с now > current and now < late
.
Короче говоря, я бы каждый раз вычислял состояние или использовал SQL, чтобы вытащить множество состояний, в которых я нуждаюсь.
Если бы я хотел использовать конечный автомат, у меня был бы набор состояний, и я бы сохранил это имя состояния в деле. Но как бы я мог инициировать переход между государствами в определенное время для каждого дела?
- Выполняйте задание cron каждую минуту, чтобы вытащить что-либо в состоянии, но за время перехода и обновить его.
- Использовать фоновую обработку для выполнения заданий перехода в очередь в соответствующие моменты в будущем, поэтому в приведенном выше примере у меня было бы два задания: "переход к текущему в 9 утра" и "переход к позднему в 10 часов утра", который предположительно имел бы логику для защиты от удаленных todos и "не отмечайте опоздание, если это сделано" и т.д.
Есть ли у кого-нибудь опыт управления одним из этих параметров при попытке обработать много переходов состояния в определенное время?
Это похоже на машину состояний, я просто не уверен в том, что вы сможете управлять всеми этими переходами.
Обновление после ответов:
- Да, мне нужно запросить "текущие" или "будущие" todos
- Да, мне нужно вызвать уведомления об изменении состояния ( "ваш todo не был сделан" )
Следовательно, мое стремление к большей части машинной концепции, чтобы я мог инкапсулировать переходы.