如何在Rails 4.1中使用ActiveJob?

时间:2014-10-19 17:10:10

标签: ruby-on-rails

由于原因(ahem ActiveAdmin),我目前无法在新项目中使用Rails 4.2。

但是,ActiveJob功能看起来很漂亮,所以我想尽可能使用它。

有没有人有使用Rails 4.1的经验?

1 个答案:

答案 0 :(得分:3)

<强>更新

现在有一个更好的解决方案:),试试这个gem 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/