問題タブ [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環境全体をロードせずにジョブをActiveJobにエンキューする方法は?
Job を別の場所から ActiveJob にエンキューしたいと思います。コマンドラインからの場合もあれば、cron ジョブからの場合もあります。しかし、redis でエントリを作成するためだけに、毎回環境全体をロードするのはあまり効率的ではありません。
Rails-Application全体をロードせずにActiveJobにジョブをすばやく追加する別のソリューションはありますか?
これは春の仕事であることはわかっていますが、(理由はわかりません)それでも約5秒かかります:
ああ、これが重要な場合: 私は sidekiq を使用します。
ruby-on-rails - ActiveJob を使用する場合、オブジェクト ID のみを渡す必要がありますか?
ActiveJob で次のことを行うことの長所と短所は何ですか。
オプション A:
オプション B:
ruby - Resque Adapter を使用した ActiveJob (遅延/タイムアウト機能を追加)
ループを使用して複数のアクティブなジョブを渡す予定です。しかし、各データループに遅延/タイムアウト機能が必要です。私のコードは次のようなものです:
助けてくださいありがとう!
ruby-on-rails - delay_jobsを使用してレールで非同期タスクを実行する方法は?
タスク:Async
方法でアイテムを削除する [宿題]
Rails アプリケーションで既に構成Active jobs
しましたが、Rails プロジェクトでタスクをdelayed_jobs
実行することについてまだ混乱しています。Async
例を見てみましょう。データベースから削除するアイテムがありますが、それを適切に行いたいと考えていAsync
ます。また、ブログでperform_later
orperform_now
メソッドについて読んでいます。delayed_job
正常に動作している私のコードは次のとおりです。
コントローラ クラス
ジョブクラス
delayed_jobs の公式ドキュメントによるとhandle_asynchronously
、メソッドの最後に追加して実行することができasync
ます。この場合、どのように実装できますか?
私の質問:
- メソッドを見ていると、途中
destroy
で要素を削除していませんAsync
。destroy
ただし、メソッドに記述されているすべての手順はSynchronous
. 私が間違っている? - そうでない場合、非同期で
destroy
削除するメソッドを実装するにはどうすればよいですか?post
- バックグラウンド タスクと cron ジョブは同じものですか?
編集 -1
A Fader Darkly から提案を受けた後、プロセスに対して完全に機能するものに変更perform_now
しましたが、テーブルからエントリを削除していません (ユーザーのときに機能するため、コードは問題ありません)。perform_later
Async
perform_now
また、次のコマンドで手動でジョブを実行している場合、すべて正常に動作します:
新しいデータを取得delay_job
したらすぐにタスクを実行する方法はありますか?queue
ruby-on-rails - GlobalID ベースの ActiveRecord オブジェクトの動作に落とし穴はありますか?
私が何か間違ったことをしている可能性は十分にありますが!
これが話です。ActiveJob ジョブを使用した標準の初心者レベルの RoR セットアップ (4.2) があります。
私の仕事の 1 つは、渡されたレコードで、そのレコードを変更するためのメソッドを呼び出します。ここまではごく普通。次のようになります。
そして、update_myself!
メソッドは次のようになります。
ここにミステリーがあります - テストを実行して、それが であることを確認するfixture_instance.thisis_a_column
とnewvalue
、テストはパスします。アプリを起動してデータベースで何が起こっているかを確認すると、期待どおりに更新されません。
しかし、私が言うとself.thisis_a_column = newvalue
、どこでも正しく機能します。
フィクスチャをリロードしたと確信しています...次のようにしました:fixture_instance = RecordinDb.find(fixture_inst.id)
インスタンス化された時期に応じて、ActiveRecord インスタンス内のバインディングが変化するかのようです。私のテストでは、シンボルは送信可能なメッセージとして扱われているように見えますself
が、ジョブではローカル名として扱われています。なんで?
ruby-on-rails - Rails 4.2: リダイレクト後のアクティブなジョブ
ActiveJobを使用するのはこれが初めてなので、まだ詳細に頭を悩ませています。ボタンを介して保存するとExecute
、非常に長い時間がかかるいくつかの API 呼び出しを実行するフォームがあります。
長い待ち時間なしでページをインデックスにリダイレクトしたいと思います。これが私のコントローラーの作成アクションです..
キャンペーン_コントローラー.rb
...そして私の仕事は幼児期にある
folder_push_job.rb
これを機能させるための最良の方法は何ですか?
アップデート
私が見つけた 1 つの問題は、Job のバックエンドがなかったため、delayed_job
gem をインストールしたことです。
config/application.rb
現在はリダイレクトされ、ジョブはまったく実行されません。
どんな助けでも大歓迎です。