问题描述
我正在尝试使用延迟的作业在后台从数据库中删除很多记录,但是我不确定如何完全完成此操作。它不是在删除记录,而是将用户名传递到get_all_calls
中,但是当delayed_jobs
在2分钟内运行该方法时,记录不会被删除。
我不能正常工作是什么意思?
在我的用户模型中
before_destroy :destroy_calls
def destroy_calls
y = self.name
self.delay(run_at: 2.minutes.from_now).get_all_calls(y)
end
def get_all_calls(y)
x = Calls.where(account_name: y).limit(5000).destroy_all
sleep(2)
end
*****编辑*****
我发现自己在做什么错。我打错了get_all_calls
。这就是修复它的原因。但是谁能解释为什么我必须对我的方法执行self
并以这种方式而不是我的方式进行调用?
def destroy_calls
y = self.name
User.delay(run_at: 2.minutes.from_now).get_all_calls(y)
end
def self.get_all_calls(y)
x = Calls.where(account_name: y).limit(5000).destroy_all
sleep(2)
end
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)