問題タブ [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.
ruby-on-rails - Rails Active Job の使用、または Rails で自動的にウォッチャー スレッドを実行する
Rails 4.2 には、バックグラウンド ジョブの共通インターフェイスとして Active Job が付属しています。しかし、ドキュメントでワーカーを開始する方法が見つかりません。ドキュメントはまだ未熟なようです (たとえば、Sneakers の適切なバージョンは Rails でのみ参照されていますGemfile
)。そのため、「実行中のワーカー」の部分が Active Job に含まれていないのか、ドキュメントに記載されていないだけなのかわかりません。
sidekiq
アクティブ ジョブの場合、または私の場合のようにジョブ ウォッチャー スレッドを手動で開始する必要がありrake sneakers:run
ますか? rails server
もしそうなら、開発環境でこれらの並列タスクを自動的に実行するには、これらのコマンドをどこに配置すればよいですか?
ruby-on-rails - Active Job (Rails 4.2) で定期的なジョブをスケジュールするにはどうすればよいですか?
このSchedule one-time jobs in Railsを見つけまし たが、これは1回限りのスケジュール方法を示しています。定期的なジョブのスケジューリングに興味があります。
Delayed_jobにはこれがあります
Rails 4.2/Active Job でそのようなことを行うにはどうすればよいですか?
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. また、レールに含めるのに適しているかどうかもわかりません"
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 ActiveJob
undefined method perform_later'
私の仕事のクラスの始まり:
ruby-on-rails - Rails 4 と Devise を使用したアクティブなジョブ
Rails 4 と Devise で Active Job をセットアップしようとしています。もしあれば、私はどんなチュートリアルにもオープンです(私の検索では見つかりませんでした.)
Devise Async gemがあることは知っていますが、その中に Active Job は含まれていません。そうは言っても、開発が新鮮なこのgemを見つけましたが、uninitialized constant Devise::Async::Backend::Base (NameError)
エラーが発生しています。(私はそれを実装することに風通しが良いかもしれません)。
どんな提案も歓迎します。新しいコントローラー メソッドを作成する必要がないことを願っています。
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) を使用
何か案は??ありがとう