我有一個耙子任務,每隔幾個小時就會更改首頁上的數據。我已經測試過了,它在開發中可以正常工作。但它在生產中不起作用。我需要做些什麼才能獲得我想要看到的更改?我應該添加一個重新啓動服務器的命令嗎?這會使服務器確認更改嗎?有沒有更聰明的方法來做到這一點?Rake任務在開發中工作,但不在生產中
耙子任務如下。它將由heroku的調度程序添加運行,所以它現在位於lib/tasks/scheduler.rake文件中。
desc 'changes the meta tags'
task :mixup_meta_tags => :environment do
regex = /@meta_tag/
file = File.open('app/controllers/site_controller.rb', 'r')
lines = []
file.each_line do |line|
(line =~ regex) ? (lines << replace_line(line)) : (lines << line)
end
file.close
file = File.open('app/controllers/site_controller.rb', 'w')
lines.each{|line| file.write line}
file.close
end
def replace_line(line)
meta_tags = MetaTag.all.map { |tag| tag["tag"] }
new_tag = meta_tags.sample(1)[0]
line = " @meta_tag = \"#{new_tag}\" \n" # added the newline
end
更確切地說...首先發布你的rake任務代碼,以及如何運行它。您不應該重新啓動服務器來運行任務。 – 2012-07-26 11:56:23
沒問題。剛添加rake任務發佈。 – 2012-07-26 12:39:58