跳至内容 跳至搜索

包含用于作业初始化的 perform_later 方法。

方法
J
P

实例公共方法

perform_later(...)

将作业推送到队列中。默认情况下,参数必须是 StringIntegerFloatNilClassTrueClassFalseClassBigDecimalSymbolDateTimeDateTimeActiveSupport::TimeWithZoneActiveSupport::DurationHashActiveSupport::HashWithIndifferentAccessArrayRange 或 GlobalID::Identification 实例,尽管可以通过添加自定义序列化器来扩展此功能。

返回一个作业类实例,该实例已排队,其参数在 Job#arguments 中可用,如果排队不成功,则返回 false。

在尝试排队后,作业将被传递给可选的块。

# File activejob/lib/active_job/enqueuing.rb, line 58
def perform_later(...)
  job = job_or_instantiate(...)
  enqueue_result = job.enqueue

  yield job if block_given?

  enqueue_result
end

实例私有方法

job_or_instantiate(*args)

# File activejob/lib/active_job/enqueuing.rb, line 68
def job_or_instantiate(*args) # :doc:
  args.first.is_a?(self) ? args.first : new(*args)
end