使用Sidekiq等后台处理程序来异步执行ActiveJob作业。
举例来说,为了在Rails中使用Sidekiq来异步执行ActiveJob作业,需要将Sidekiq添加为Gemfile的依赖:
gem 'sidekiq'
然后,在应用程序的配置文件中设置ActiveJob队列适配器为Sidekiq:
# config/application.rb
config.active_job.queue_adapter = :sidekiq
现在,ActiveJob将使用Sidekiq作为后台处理程序。为了创建一个异步ActiveJob作业,可以在作业类中定义perform方法,并使用perform_async
方法调用作业:
# app/jobs/my_job.rb
class MyJob < ApplicationJob
queue_as :default
def perform(*args)
# 执行复杂的任务
end
end
# 在控制器或其他地方调用作业
MyJob.perform_async(params[:id])
这将将MyJob
作业添加到Sidekiq队列中,当队列中的工作人员准备好时,将异步执行作业。