2011-03-15 35 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的命令決心。

希望這會有所幫助。