Ruby rails,延迟作业:run_at 变量

Ruby on rails, delayed job :run_at variable

我是运行一个发送数据到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 工作工作正常。我还在 rake 作业的控制台中看到 hello_darkness 输出。

尝试在 batch_task 方法中使用如下 delay

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