Моделирование доступности ресурсов во времени с исключениями в Rails - PullRequest
1 голос
/ 22 июля 2010

Я борюсь с тем, как смоделировать ресурс и его доступность с помощью инструментов, гемов или плагинов, доступных нам в Rails.

Обычно каждый ресурс будет иметь типичную готовность в 0.24 часа длякаждый день (0,1,2,3,4,5,6) недели.НО тогда будут исключения, которые нужно рассматривать, например, как праздник или специальное событие, которое должно отменять значение по умолчанию для этого дня недели.

Я могу думать о двух широких подходах (хотя я уверен, что естьболее).Тот, который будет запрашивать БД при каждом запросе и проверять логику, чтобы увидеть, доступен ли ресурс в данный момент.Это может стать громоздким (трудоемким) по мере роста системы.Другой будет запускать процесс (cron?) Каждые x (5?) Мин, чтобы установить логическое значение (AVAILABLE) для каждого ресурса, который выводится в зависимости от правил его доступности.

Это широкие подходы, которые могутвозможно, работа, но как подойти к модели / классам, где я мог бы действительно использовать некоторые советы.

Есть мысли?Опыт?Gems / Plugins, о которых я должен знать?

1 Ответ

1 голос
/ 22 июля 2010

Не уверен в применимости вашего приложения, но есть довольно хороший Ruby gem под названием ice_cube , который можно использовать для моделирования повторяющихся дат и времени. Вы можете настроить расписание для своих ресурсов, указав правила их доступности и исключения. Расписание может быть сериализовано в базу данных как YAML (скажем, в текстовом поле) для каждого ресурса.

Когда вам нужно увидеть, доступен ли конкретный ресурс, вы просто извлекаете его из расписания и сериализуете ice_cube, пересекается ли дата / время с его правилами или нет. Это очень быстро и эффективно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...