我試圖實現一個調度程序任務,該任務刪除用戶表中濫用超過5次的用戶。爲了在user.rb文件中實現此目的,我返回了一個report_abuse_delete方法,該方法執行查找濫用超過5次的用戶並從數據庫中刪除其記錄的功能。使用任何時候使用gem in rails 3來實現調度任務
這裏是我的用戶模型的方法:
def report_abuse_delete
@delete_abused_user= Abuse.find(:all, :conditions=>['count>=?',5])
@delete_abused_user.each do |d|
@abused_user= User.find(d.abuse_id)
if @abused_user.delete
render :text=> "User account has been deleted. Reason: This user has been reported spam for more than 5 times"
UserMailer.user_delete_five_spam_report(@user).deliver
end
end
end
而這就是我寫的Scheduler.rb文件
every 2.minutes do
rake "log:clear", :environment => "development"
runner "User.report_abuse_delete", :environment => "development"
end
正如你可以在scheduler.rb文件我看到試圖執行2個函數之一是每2分鐘清理一次日誌,並嘗試運行我在模型中編寫的report_abuse_delete方法。
我每2分鐘就會遇到一個問題,我的日誌正在清除,但是我在模型中寫入的方法沒有被調用,我猜這個功能沒有被觸發。我搜查了所有的網絡,並檢查了各種可能的方式。我無法弄清楚問題是什麼。
請幫我解決。任何形式的幫助都是值得歡迎的。
謝謝Chowlett。它的工作。 – Sam
不用擔心。這裏第一個好問題!記住你可以表明這個答案通過增加投票來幫助你(點擊向上箭頭);您也可以通過點擊空的複選標記來接受它。 – Chowlett