我有我需要以更新像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