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

ruby-on-rails-4.2 - Rails ランナーと ActiveJobs (互換性あり?)

月に 1 回ジョブを実行する必要があります。いつでもgemを使用してcronで呼び出す必要があります。この場合、ジョブまたはレーキを使用しますか?

コンソールでジョブを実行できません。

レールランナー「MyJob.perform_later」

Rails 4.2を使用しています

エラー:

.rvm/gems/ruby-2.1.4/gems/railties-4.2.0/lib/rails/commands/runner.rb:62:in <top (required)>': uninitialized constant MyJob (NameError) from /Users/leonardo/.rvm/gems/ruby-2.1.4/gems/railties-4.2.0/lib/rails/commands/runner.rb:62:ineval' from /Users/leonardo/.rvm/gems/ruby-2.1.4 /gems/railties-4.2.0/lib/rails/commands/runner.rb:62:in <top (required)>' from /Users/leonardo/.rvm/gems/ruby-2.1.4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:123:inrequire' from /Users/leonardo/.rvm/gems/ruby-2.1.4/gems/railties-4.2.0/lib /rails/commands/commands_tasks.rb:123:in require_command!' from /Users/leonardo/.rvm/gems/ruby-2.1.4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:90:inrunner' from /Users/leonardo/.rvm/gems/ruby-2.1.4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39 :in run_command!' from /Users/leonardo/.rvm/gems/ruby-2.1.4/gems/railties-4.2.0/lib/rails/commands.rb:17:in' from bin/rails:4:in require' from bin/rails:4:in'

私の仕事の内容:

class MyJob < ActiveJob::Base queue_as :default

終わり

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

ruby-on-rails - Rails 4.2 ActiveJobがジョブキューで可視性を得る

SideKiq をバックエンドとして使用します。

ActiveJob を介して ActiveJob のキューまたは SideKiq のキューにアクセスする方法はありますか?

ドキュメントはこの件について沈黙しているようです。

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

ruby-on-rails - ActiveJob を効率的に再スケジュール (resque/sidekiq)

メールのスケジューリングにbacked byRails 4.2を使用するアプリで遊んでいます。ユーザーがニュースレター キャンペーンを作成すると、新しいジョブが作成され、特定の日付にスケジュールされます。これで問題ありませんが、ユーザーが配送日を変更するとどうなりますか。ActiveJobresque/sidekiq

この場合、すべてのジョブは配信する必要があるかどうかを確認できるため、無効なジョブは無視され、最後のジョブのみが実行されます。これは機能する可能性がありますが、ユーザーが 1k-1 個の無効なジョブをキューにプッシュする 1k の編集を行うと、良くありません。既存の仕事を更新するか、新しい仕事に置き換える必要があると思います。私の知る限り、Redisキューを検索するのjob_idは遅いです。

RailsでActiveJobsを再スケジュールする適切な方法は何ですか(resque/sidekiqを使用)?

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

ruby - ActiveJob と Sidekiq で失敗したジョブの再試行カウンターを制限するにはどうすればよいですか?

アダプターとして使用してretries、ジョブが失敗する回数を制限したいと考えています。ActiveJobSidekiq

Sidekiq を使用すると、次のことができます。

Sidekiq 構成はグローバル構成を提供しませんretry。各ワーカーは、retryオプションを設定する責任があります。したがって、適切に実行するには、ActiveJob 側で実装する必要があると思います。

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

ruby-on-rails - Sidekiq/ActiveJob のテスト - ActiveJob のジョブで Sidekiq ではないジョブ

次のように ActiveJob を使用するように、ユーザー クラス (devise を使用) にパッチを適用しました。

これを次のテストでテストしてみました。

log/test.log は次のようになります。

デバッガー内の enqueued_jobs は次のようになります。

bin/rails c --環境テスト

私のProfileは次のようになります:

誰にもアイデアはありますか?

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

ruby-on-rails - ActiveJob (resque) で使用されているデータは永続化するか、Ruby オブジェクトに入れてオブジェクト ID で渡す必要がありますか?

Rails 4.2 アプリでTwilio を使用してテキストを送受信しています。一度に約 1000 件をまとめて送信し、散発的に受信しています。

現在、テキストを受信すると、それを DB (to、from、body) に保存し、そのレコードを ActiveJob ワーカーに渡して後で処理します。メッセージを送信するために、現在、Twilio パラメータを別の DB に保持し、そのレコードを別の ActiveJob ワーカーに渡しています。私はバッチで行うことが多いので、2 つのワーカーがあります。最初の発信メッセージ ワーカーは、1 つのメッセージを送信します。2 番目のものは DB にクエリを実行し、メッセージを受信する必要があるすべてのユーザーを見つけ、送信する必要がある各メッセージの DB レコードを作成し、そのレコードを最初の送信メッセージ ワーカーに渡します。したがって、2 番目のジョブは基本的に、最初のジョブが処理する一連のジョブを作成するだけです。

現在、ワーカーが処理を終了したらレコードを破棄しています (着信と発信の両方)。サーバー、redis、または resque がダウンした場合に備えて永続化しないことを心配していますが、これが実際に良い設計パターンであるかどうかはわかりません。バニラ ルビー オブジェクトを使用してその ID をワーカーに渡すように提案されましたが、それがデータの信頼性にどのように影響するかはわかりません。では、これらすべての DB を作成するのはやり過ぎですか? バニラ ルビー オブジェクトを作成し、それらのオブジェクトの ID をワーカーに渡すだけでよいのでしょうか?

ありとあらゆる洞察が高く評価され、

ドリュー