跳至内容 跳至搜索

提供在异常时重试和丢弃作业的行为。

命名空间
方法
R

实例公共方法

retry_job(options = {})

重新安排作业以重新执行。这在使用 rescue_from 结合时很有用。当您从作业中捕获异常时,您可以要求 Active Job 重试执行您的作业。

选项

  • :wait - 以指定的秒数延迟将作业排队。

  • :wait_until - 在指定的时间入队作业

  • :queue - 在指定的队列上入队作业

  • :priority - 以指定的优先级入队作业

示例

class SiteScraperJob < ActiveJob::Base
  rescue_from(ErrorLoadingSite) do
    retry_job queue: :low_priority
  end

  def perform(*args)
    # raise ErrorLoadingSite if cannot scrape
  end
end
# File activejob/lib/active_job/exceptions.rb, line 158
def retry_job(options = {})
  instrument :enqueue_retry, options.slice(:error, :wait) do
    scheduled_at, queue_name, priority = self.scheduled_at, self.queue_name, self.priority
    enqueue options
  ensure
    self.scheduled_at, self.queue_name, self.priority = scheduled_at, queue_name, priority
  end
end