2014-10-19 37 views
5

由於原因(ahem ActiveAdmin),我目前無法在新項目上使用Rails 4.2。如何在Rails 4.1中使用ActiveJob?

但是,ActiveJob功能看起來像一個很好的抽象,所以我想盡可能使用它。

有沒有人有任何使用Rails 4.1的經驗?

回答

3

UPDATE

現在有一個更好的解決辦法:),試試這個寶石activejob_backport,易於安裝,相同的功能,導軌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 

那麼你應該能夠引用ActiveJob在你的Rails應用程序,創建和排隊作業:

# 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/

+0

謝謝!這絕對總結了我嘗試這樣做時遇到的主要困難。 – elsurudo 2014-10-30 09:11:18