Rails: сбросить атрибут модели в определенное время каждый день - PullRequest
0 голосов
/ 18 августа 2011

У меня есть приложение rails с моделью Location, которая имеет поле rating и поле rating_count.Теперь мне нужно сбросить каждый атрибут Location rating и rating_count на 0 в определенное время каждый день, скажем, 12:00:00 UTC.

Как бы мне этого добиться?Я использую стандартные базы данных sqlite3.

Ответы [ 3 ]

2 голосов
/ 18 августа 2011

Лучший вариант - использовать cron.Вы можете найти тонны документации там! Хотя, если вы работаете с приложением Rails, вы должны проверять всякий раз, когда довольно аккуратный драгоценный камень для управления заданиями cron для вашего приложения!

1 голос
/ 18 августа 2011

Самое простое - написать грабли, которые выполняют эту работу, а затем использовать любую систему планирования, которую использует ваш хост (cron).

Альтернативой является использование delayed_job , которое позволяет перенести работу в фоновый процесс. Хотя отложенная работа не совсем подходит для чего-то подобного, она вполне может это сделать. Если ваш рельсовый процесс начинается, вы добавляете новое задание для запуска в 12:00. И выполнение задания переносит задание.

Приятной особенностью отложенной работы является то, что ваш код выполняется в контексте rails-процесса, поэтому вы можете использовать методы, которые у вас уже есть. Также хорошо: задания хранятся в базе данных, поэтому вы можете иметь обзор.

0 голосов
/ 18 августа 2011

Если вы используете * nix box, напишите скрипт для обновления (например, в PHP или Perl) и просто добавьте его в crontab. Проверьте cron .

...