2014-10-19 34 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