我试图实现一个调度程序任务,该任务删除用户表中滥用超过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