如何解决Rails delay_jobs +删除记录
我正在尝试使用延迟的作业在后台从数据库中删除很多记录,但是我不确定如何完全完成此操作。它不是在删除记录,而是将用户名传递到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 举报,一经查实,本站将立刻删除。