Active Job 基础
Active Job 对象可以配置为与不同的后端排队框架配合使用。要指定要使用的队列适配器
ActiveJob::Base.queue_adapter = :inline
可以在 QueueAdapters
中找到支持的适配器列表。
Active Job 对象可以通过创建一个继承自 ActiveJob::Base
类的类来定义。唯一需要实现的方法是“perform”方法。
要定义一个 Active Job 对象
class ProcessPhotoJob < ActiveJob::Base
def perform(photo)
photo.watermark!('Rails')
photo.rotate!(90.degrees)
photo.resize_to_fit!(300, 300)
photo.upload!
end
end
传入的记录使用 Global ID 进行序列化/反序列化。更多信息可以在 Arguments
中找到。
要将一个作业排队以在排队系统空闲时立即执行
ProcessPhotoJob.perform_later(photo)
要将作业排队以在将来的某个时间点处理
ProcessPhotoJob.set(wait_until: Date.tomorrow.noon).perform_later(photo)
更多信息可以在 ActiveJob::Core::ClassMethods#set
中找到
作业也可以立即处理,而不必发送到队列
ProcessPhotoJob.perform_now(photo)
异常
-
DeserializationError
- 反序列化错误的错误类。 -
SerializationError
- 序列化错误的错误类。
包含的模块