У меня есть приложение rails, где мне нужно периодически удалять журналы поиска из модели.Для этого я использую задачу rake с синтаксисом model.destroy_all , она отлично работает на сервере разработки.Однако, похоже, что на производственном сервере ничего не происходит.
И серверы разработки, и производственные серверы используют Ubuntu Server 10.04, Rails 3.0.7, Mysql Database.Вы сталкивались с подобной ситуацией раньше?
Ниже приведен код задачи rake:
task :cleansed_log => :environment do
raw_logs = Searchlog.find_by_sql("SELECT q from searchlogs")
flag = 0
pres_log, prev_log = "", ""
if raw_logs.count > 1
raw_logs.each do |raw_log|
if flag == 0
prev_log = raw_log.q
flag = 1
else
pres_log = raw_log.q
if pres_log =~ /#{prev_log}/
prev_log = pres_log
else
@cleansedlog = Cleansedlog.new(:keyword => prev_log)
@cleansedlog.save
prev_log = pres_log
end
end
end
@cleansedlog = Cleansedlog.new(:keyword => pres_log)
@cleansedlog.save
Searchlog.destroy_all
end
end
Ниже приведено задание cron, которое вызывает выше задачу rake:
# Begin Whenever generated tasks for: cleansedlog
# 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /var/www/prodsite//releases/20110715035538 && RAILS_ENV=production rake cleansed_log -- silent >> /work/saptcodes/cron.log 2>&1'
# End Whenever generated tasks for: cleansedlog