如何在Rails 4.1中使用ActiveJob?

5

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

然而,ActiveJob功能看起来像一个不错的抽象,所以如果可能的话,我想使用它。

有人有没有在Rails 4.1上成功使用这个功能的经验?

1个回答

3

更新

现在有更好的解决方案了 :), 请尝试使用这个宝石 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/


谢谢!这绝对总结了我在尝试做这件事时遇到的主要问题。 - elsurudo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接