2014-10-19 2 views
5

По причинам (ах ActiveAdmin), я в настоящее время не могу использовать Rails 4.2 в новом проекте.Как использовать ActiveJob с Rails 4.1?

Однако функция ActiveJob выглядит как хорошая абстракция, поэтому я хотел бы использовать ее, если это возможно.

Есть ли у кого-нибудь опыт работы с Rails 4.1?

ответ

3

UPDATE

Там лучшее решение сейчас :), попробуйте этот камень activejob_backport, легкость установки, одни и те же функции, как рельсы 4.2.


ВНИМАНИЕ: устаревшее СОДЕРЖАНИЕ НИЖЕ

Чтобы использовать ActiveJob в Rails 4.1, вы должны сделать это первым.

# 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 в вашем рельсы приложение, чтобы создать и епдиеие работу:

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

Там уже несколько подводных камней, хотя, большая разница в том, что это не совсем то же самое ActiveJob внутри Rails 4.2.beta, как и недостатки генераторов, обратные вызовы и синтаксис немного отличаются. Я написал сообщение в блоге, если вы хотите больше копать: http://kinopyo.com/blog/use-activejob-in-rails-4-1/

+0

Спасибо! это определенно суммирует основные проблемы, которые я натолкнулся на себя, пытаясь сделать это. – elsurudo

Смежные вопросы