由于某些原因(咳咳ActiveAdmin),我目前无法在新项目中使用Rails 4.2。
然而,ActiveJob功能看起来像一个不错的抽象,所以如果可能的话,我想使用它。
有人有没有在Rails 4.1上成功使用这个功能的经验?
由于某些原因(咳咳ActiveAdmin),我目前无法在新项目中使用Rails 4.2。
然而,ActiveJob功能看起来像一个不错的抽象,所以如果可能的话,我想使用它。
有人有没有在Rails 4.1上成功使用这个功能的经验?
更新
现在有更好的解决方案了 :), 请尝试使用这个宝石 activejob_backport,安装更容易,与rails 4.2相同的功能。
注意:以下内容已过时
要在Rails 4.1中使用ActiveJob,您需要先进行以下操作。
# in Gemfile
gem 'activejob'
# in your terminal
bundle
# create a config/initializers/active_job.rb
require 'active_job'
# or any other supported backend such as :sidekiq or :delayed_job
ActiveJob::Base.queue_adapter = :inline
然后您应该能够在Rails应用程序中引用ActiveJob
,创建并排队作业:
# app/jobs/guests_cleanup_job.rb
class GuestsCleanupJob < ActiveJob::Base
queue_as :default
def perform(*args)
# Do something later
end
end
# usage
GuestsCleanupJob.enqueue(record)
GuestsCleanupJob.enqueue(record, options)
然而,需要注意的是,最大的区别在于Rails 4.2.beta中的ActiveJob并非完全相同,例如缺乏生成器、回调和语法略有不同。如果您想深入了解,可以查看我写的一篇博客:http://kinopyo.com/blog/use-activejob-in-rails-4-1/