問題タブ [rails-activejob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1728 参照

ruby-on-rails - Rails Active Job の使用、または Rails で自動的にウォッチャー スレッドを実行する

Rails 4.2 には、バックグラウンド ジョブの共通インターフェイスとして Active Job が付属しています。しかし、ドキュメントでワーカーを開始する方法が見つかりません。ドキュメントはまだ未熟なようです (たとえば、Sneakers の適切なバージョンは Rails でのみ参照されていますGemfile)。そのため、「実行中のワーカー」の部分が Active Job に含まれていないのか、ドキュメントに記載されていないだけなのかわかりません。

sidekiqアクティブ ジョブの場合、または私の場合のようにジョブ ウォッチャー スレッドを手動で開始する必要がありrake sneakers:runますか? rails serverもしそうなら、開発環境でこれらの並列タスクを自動的に実行するには、これらのコマンドをどこに配置すればよいですか?

0 投票する
4 に答える
27072 参照

ruby-on-rails - Active Job (Rails 4.2) で定期的なジョブをスケジュールするにはどうすればよいですか?

このSchedule one-time jobs in Railsを見つけまし たが、これは1回限りのスケジュール方法を示しています。定期的なジョブのスケジューリングに興味があります。

Delayed_jobにはこれがあります

Rails 4.2/Active Job でそのようなことを行うにはどうすればよいですか?

0 投票する
3 に答える
3556 参照

ruby-on-rails - Resque-Scheduler が Rails 4.2 の ActiveJob で動作しない

Rails 4.2 でスケジュールされたジョブを動作させることができた人はいますか?

私は resque を使用しており、resque-scheduler を使用してジョブをスケジュールしようとしています。ロードされてスケジューラが実行されるスケジュールがあり、ジョブを実行しているように見えますが、何もしません。

このようなジョブをキューに入れることができ、それらは処理されます。

そして、この出力をワーカーログに取得します

しかし、ジョブをスケジュールしようとすると、エンキューされているように見えますが、何もしていません。

これがschedule.ymlです

スケジュールされたジョブからの出力は次のとおりです。

このhttp://dev.mikamai.com/post/96343027199/rails-4-2-new-gems-active-job-and-global-id を読んだ後、ActiveJob と GlobalId に関係があるのではないかと疑っています。

エンキューされた違いを見てください

対予定

ジョブ自体は次の方法で生成されました

それらは次のようになります。

これに関するヘルプは大歓迎です。事前に感謝します。

********* アップデート *********

action_job railtie を削除し、Resque と Resque-Scheduler のみを使用しており、スケジュールされたジョブは現在機能しています。したがって、これは ActionJob/GlobalId に関連しているようです。Rails プロジェクトでイシューをオープンしました。うまくいけば、彼らはすぐにそれを修正します。

****** 2 回目の更新 ********* これに関する最新情報を入手しました。ActiveJob コードベースで働く Cristianbica 氏は、次のように述べています。「これまでのところ、定期的なジョブについては考えていませんでした。これをサポートしていないのは、外部の gem なしでこれをサポートしているアダプターがないためです。しかし、これは非常に優れた機能ですが、ジョブに間に合うとは思えません。 4.2. また、レールに含めるのに適しているかどうかもわかりません"

0 投票する
3 に答える
8519 参照

ruby-on-rails - Rails 4.1 with ActiveJob gem - 初期化されていない定数 ActiveJob

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

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

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

ただし、実行する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'

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

0 投票する
1 に答える
2487 参照

ruby-on-rails - Rails 4 と Devise を使用したアクティブなジョブ

Rails 4 と Devise で Active Job をセットアップしようとしています。もしあれば、私はどんなチュートリアルにもオープンです(私の検索では見つかりませんでした.)

Devise Async gemがあることは知っていますが、その中に Active Job は含まれていません。そうは言っても、開発が新鮮なこのgemを見つけましたが、uninitialized constant Devise::Async::Backend::Base (NameError)エラーが発生しています。(私はそれを実装することに風通しが良いかもしれません)。

どんな提案も歓迎します。新しいコントローラー メソッドを作成する必要がないことを願っています。

0 投票する
13 に答える
36358 参照

ruby-on-rails - rspecでActionMailerのdeliver_laterをテストする方法

delay_job_active_record を使用して、Rails 4.2 にアップグレードしようとしています。ジョブがすぐに実行されるように、テスト環境用のdelayed_job バックエンドを設定していません。

RSpec で新しい「deliver_later」メソッドをテストしようとしていますが、方法がわかりません。

古いコントローラー コード:

新しいコントローラー コード:

私はそれを次のようにテストするために使用しました:

今、私はそれを使用してエラーが発生します。(二重の「メーラー」が予期しないメッセージを受け取りました:deliver_later with (引数なし))

ただ

「nil:NilClass の undefined method `deliver_later'」でも失敗します

ActiveJob で test_helper を使用してジョブがキューに登録されているかどうかを確認できる例をいくつか試しましたが、正しいジョブがキューに登録されていることをテストできませんでした。

これは、test_helper が含まれている場合はパスしますが、送信されている電子メールが正しいかどうかを確認することはできません。

私がやりたいことは次のとおりです。

  • 正しいメールがキューに入れられていることをテストします (またはテスト環境ですぐに実行されます)
  • 正しいパラメータ (@user) を使用

何か案は??ありがとう