2011-03-15 27 views
0

我有我需要以更新像UPDATE users SET status=1 WHERE <some conditions>对象(东西的状态,以执行“原始”的SQL语句。如何定期运行SQL语句?

我需要这一直在后台每隔60秒后运行。

如何我该怎么办呢?

诗篇环境是Ubuntu的10.10和Rails 3.0.3

回答

1

你必须使用一个cron(crontab中)以定期调用一个铁路脚本做此更新。

+0

但是怎么做呢?另外,整个Rails环境会每隔60秒加载一次以运行查询吗?你可以给的任何例子? – Zabba 2011-03-15 07:50:59

+0

我已经为此tuto添加了书签:http://www.ameravant.com/posts/recurring-tasks-in-ruby-on-rails-using-runner-and-cron-jobs可能对您有用 – guillaumepotier 2011-03-15 07:53:38

1

加载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 

你可能在你的crontab文件的顶部设置PATH变量,以确保MySQL的/ psql的命令决心。

希望这会有所帮助。