Как периодически запускать оператор SQL? - PullRequest
0 голосов
/ 15 марта 2011

У меня есть «сырой» оператор SQL, который мне нужно выполнить для обновления статуса объектов (что-то вроде UPDATE users SET status=1 WHERE <some conditions>.

Мне нужно, чтобы это выполнялось каждые 60 секунд в фоновом режиме.

Как мне это сделать?

Ps. Средой является Ubuntu 10.10 и Rails 3.0.3

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Загрузка среды rails для запуска одного оператора sql - огромная трата ресурсов.

Crontab для MySQL:

0 * * * * mysql your_db_name -e "users SET status=1 WHERE <some conditions>;"

Crontab для PostgreSQL:

0 * * * * psql  -c "users SET status=1 WHERE <some conditions>" your_db_name

Возможно, вам придется установить переменную PATH в верхней части файла crontab, чтобы убедиться, что команды mysql / psql разрешаются.

Надеюсь, это поможет.

1 голос
/ 15 марта 2011

Вам придется использовать cron (crontab) для периодического вызова скрипта Rail, выполняющего это обновление.

...