Ruby on rails,延迟job:run_at变量

时间:2017-06-08 10:01:43

标签: ruby-on-rails ruby rake delayed-job

我正在运行一项将数据发送到rest api的工作。

在完成所有这些请求之后,我需要一个10分钟的延迟,然后将调用一个方法来处理那些已发送的请求。

def self.batch_task(batch_params)
    # a very long code
    Batch.delay.check_requests
end

我的第二种方法是check_requests

def self.check_requests
   puts 'hello darkness'
end

def check_requests
   self.check_requests
end

最后,我正在调用handle_asynchronously

handle_asynchronously :batch_task
handle_asynchronously :check_requests, :run_at => Proc.new { 10.minutes.from_now }

Batch_task正确运行后跟check_reqeusts,但是我没有在函数check_requests 之前得到任何10分钟的延迟。 我的佣金工作正常。我还在rake作业的控制台中看到了hello_darkness输出。

1 个答案:

答案 0 :(得分:0)

尝试使用delay方法

中的batch_task,如下所示
def self.batch_task(batch_params)
  # a very long code
  Batch.delay(run_at: 10.minutes.from_now).check_requests
end

handle_asynchronously :batch_task
handle_asynchronously :check_requests