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 (将#修改为@)