Active Job 基础
Active Job 对象可以配置为使用不同的后端队列框架。若要指定要使用的队列适配器
ActiveJob::Base.queue_adapter = :inline
可以在 QueueAdapters
中找到受支持的适配器列表。
可以通过创建继承自 ActiveJob::Base
类的类来定义 Active Job 对象。唯一需要实现的方法是“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
传入的记录使用全局 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
- 序列化错误的错误类。
包含的模块