5
由于原因(ahem ActiveAdmin),我目前无法在新项目上使用Rails 4.2。如何在Rails 4.1中使用ActiveJob?
但是,ActiveJob功能看起来像一个很好的抽象,所以我想尽可能使用它。
有没有人有任何使用Rails 4.1的经验?
由于原因(ahem ActiveAdmin),我目前无法在新项目上使用Rails 4.2。如何在Rails 4.1中使用ActiveJob?
但是,ActiveJob功能看起来像一个很好的抽象,所以我想尽可能使用它。
有没有人有任何使用Rails 4.1的经验?
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/
谢谢!这绝对总结了我尝试这样做时遇到的主要困难。 – elsurudo 2014-10-30 09:11:18