我有我需要以更新像UPDATE users SET status=1 WHERE <some conditions>
对象(东西的状态,以执行“原始”的SQL语句。如何定期运行SQL语句?
我需要这一直在后台每隔60秒后运行。
如何我该怎么办呢?
诗篇环境是Ubuntu的10.10和Rails 3.0.3
我有我需要以更新像UPDATE users SET status=1 WHERE <some conditions>
对象(东西的状态,以执行“原始”的SQL语句。如何定期运行SQL语句?
我需要这一直在后台每隔60秒后运行。
如何我该怎么办呢?
诗篇环境是Ubuntu的10.10和Rails 3.0.3
你必须使用一个cron(crontab中)以定期调用一个铁路脚本做此更新。
加载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的命令决心。
希望这会有所帮助。
但是怎么做呢?另外,整个Rails环境会每隔60秒加载一次以运行查询吗?你可以给的任何例子? – Zabba 2011-03-15 07:50:59
我已经为此tuto添加了书签:http://www.ameravant.com/posts/recurring-tasks-in-ruby-on-rails-using-runner-and-cron-jobs可能对您有用 – guillaumepotier 2011-03-15 07:53:38