3

私は、EngineYard によるアクティブな仕事の開始に関する記事に従いました。記事には次のように記載されています。

Active Job をデフォルトで使用可能にする場合は、Rails 4.2.0beta1 以降が必要です (古いバージョンの Rails では、Gem として要求できます)。

Rails 4.1 プロジェクトで ActiveJob を使用しようとしています。ActiveJob を gemfile に追加しましたgem 'activejob'。記事によると、私は持っています:

#config/initializers/active_job.rb
ActiveJob::Base.queue_adapter = :resque

ただし、実行するrails serverと次のエラーが発生します。

config/initializers/active_job.rb:1:in': 初期化されていない定数 ActiveJob (NameError)`

編集- タイプミス「gem active job」を修正

更新 1

以下の solydest の提案に従って、application.rb に追加するとエラーが発生require 'active_job'しなくなりますが、ジョブを呼び出そうとするとエラーが発生します。私はエッジレールガイドに従っており、次のようなコードでジョブをキューに入れています:uninitialized constant ActiveJobundefined method perform_later'

MyJob.perform_later(record)

私の仕事のクラスの始まり:

class MyJob < ActiveJob::Base
  queue_as :images
  def perform(id)
4

3 に答える 3

2

Rails 4.1 の ActiveJob の gem バージョンが 0 であり、Rails 4.2 のバージョンとは異なることがわかりました。

ActiveJob の v0 を使用している場合、構文は次のようになります。

MyJob.enqueue(record)

また

MyJob.enqueue(record, options)

この記事では、Rails 4.1 を使用した ActiveJob について多くの興味深いことを見つけることができます: http://kinopyo.com/blog/use-activejob-in-rails-4-1/

于 2014-11-23T16:49:52.157 に答える
0

Rails 4.0 または 4.1 で Active Job を使用する場合は、この gem を使用します。

https://github.com/ankane/activejob_backport

しかし、このgemは Action Mailer を取り込んでいませんでしdeliverた。

于 2015-01-03T17:13:16.580 に答える