問題タブ [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 投票する
1 に答える
587 参照

ruby-on-rails - ActiveJob::SerializationError と ActiveUUID

次のエラーが表示されます。

これらの宝石を使用している間:

  • アクティブUID
  • ペーパークリップ
  • 遅延ジョブ
  • 遅れた_ペーパークリップ

これは私の実際のモデルコードです:

ActiveJobはオブジェクトを処理または認識できないため、エラーはactiveuuidまたはdelayed_pa​​perclipから発生していると推測しています。

これを修正する方法を知っている人はいますか?

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

ruby-on-rails - CollectionProxy オブジェクトを ActiveJob に渡すことができません

フォアグラウンドで時間がかかるため、バックグラウンドでメッセージのコレクションをマークする必要があります (delayed_job gem を使用しています)。だから私はActiveJobクラスを作成し、それと変数MarkMessagesAsReadJobを渡してuser、すべての読み取りをマークしました。messagesmessagesuser

私の ActiveJob クラスでは、タスクを実行します。

ただし、タスクを実行しようとすると、エラー ActiveJob::SerializationError (Unsupported argument type: ActiveRecord::Associations::CollectionProxy) が発生しました:

サポートされている型のみを ActiveJob に渡すことができると読みましたが、CollectionProxy オブジェクトをシリアル化できないと思います。これを回避/修正するにはどうすればよいですか?

PS:考えました

しかし、それらを1つずつマークするのはかなり高価だと思います。

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

ruby-on-rails - ActiveJob で例外をキャッチする方法

例外処理に関するActiveJob ドキュメントでは、ジョブのコンテキスト内で例外処理を実行する方法について、次の例が提供されています。

特定の例外を構築してキャプチャしているアプリケーションでこの手法を使用しています。私の質問は、すべての例外をキャプチャする方法ですか?

さまざまな種類の例外をキャプチャし、それぞれの方法で同じ手順を実行しているため、コードをドライアップしたいと思います。また、現在の実装では、特定の例外が無視されているため、ジョブがサイレントに失敗する場合があります。

ActiveJob を使用して一般的な例外をキャプチャするにはどうすればよいですか?

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

ruby-on-rails - Ruby/Rails: ActiveJob の未定義メソッド「set」

次のようなジョブを作成しました。

それは私のメーラーを使用します:

私のコントローラー:

次のエラーが発生し続けます: NoMethodError (SendEmailJob:Class の未定義メソッド「set」):

編集 config/application.rb require File.expand_path('../boot', FILE )

レール 4.1.8

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

ruby-on-rails - Heroku で resque を使用してメールが配信されない

電子メールを送信するための遅延したジョブはキューに入れられ、heroku ログに従って正しく処理されますが、実際には電子メールを受信しません。同じsmtp設定でローカルで期待どおりに機能するため、何が問題なのかわかりません。

ログからの抜粋は次のとおりです。

キューイング:

処理:

production.rb と development.rb の SMTP 設定:

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

ruby-on-rails - ActiveJob ジョブから url_for / polymorphic_url を使用するにはどうすればよいですか?

ActiveJob ジョブ内から呼び出している通知サービスがあります (delayed_job バックエンドを使用)。各通知の対象はモデル インスタンスであり、いくつかの異なるクラスのいずれかになります。受信者の便宜のために、そのオブジェクトのビューへのリンクを含める必要があります。

url_for はジョブ コンテキストで使用できるメソッドではないため、これは機能しません。

このコードの以前のより限定的なバージョンでは、 を使用Rails.application.routes.url_helpers.model_name_url(object)しましたが、これはモデル固有です。Rails.application.routes.url_forモデルではなく、コントローラー/アクションの仕様が必要なようです。

メーラーでは使用できurl_for(object)、モデル クラスに関係なく、正しいことを行います。では、ジョブ内のポリモーフィック URL ヘルパーにアクセスするにはどうすればよいでしょうか?

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

ruby-on-rails - ActiveJob には特定の優先順位を持つキューがありますか?

以下のジョブを見ると、ジョブがlow_priorityキューで実行されていると思います。

私はこれに同意しますが、これは正しいキューの名前ですか? 実はプライオリティとは関係ありません。たとえば、キュ​​ーという名前のジョブを作成した場合、キューと:my_queue同じ優先度を持つものとして扱われ:low_priorityます。

ドキュメントから、キューに入れられたジョブに優先順位を付けることができることを示すものを見つけることができませんでした。delayed_jobs にこの機能があることは知っていますが、active_job には見つかりませんでした。

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

ruby-on-rails - Ruby: 基本クラスのコンテキストでメソッドを実行する

約 20 の異なるアクティブなジョブがあり、それぞれが controller のコンテキスト外で PaperTrail コンテンツbefore_performを設定するメソッドを必要としていることに気付きました。

before_performこのメソッドをヘルパーに入れてから、各ジョブにヘルパーを含めることを計画していましたが、エラーが発生しています:

MyApp:JobHelpers:Module の未定義のメソッド `before_perform'

これは、問題のモジュールが単なるモジュールであり、アクティブなジョブではないためだと考えています。before_perform各アクティブ ジョブで同じ 4 行の方法を繰り返さないようにするにはどうすればよいですか?

Job_helper:

仕事: