問題タブ [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-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:in
eval' 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:in
require' 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:in
runner' 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
終わり
ruby-on-rails - Rails 4.2 ActiveJobがジョブキューで可視性を得る
SideKiq をバックエンドとして使用します。
ActiveJob を介して ActiveJob のキューまたは SideKiq のキューにアクセスする方法はありますか?
ドキュメントはこの件について沈黙しているようです。
ruby-on-rails - ActiveJob を効率的に再スケジュール (resque/sidekiq)
メールのスケジューリングにbacked byRails 4.2
を使用するアプリで遊んでいます。ユーザーがニュースレター キャンペーンを作成すると、新しいジョブが作成され、特定の日付にスケジュールされます。これで問題ありませんが、ユーザーが配送日を変更するとどうなりますか。ActiveJob
resque/sidekiq
この場合、すべてのジョブは配信する必要があるかどうかを確認できるため、無効なジョブは無視され、最後のジョブのみが実行されます。これは機能する可能性がありますが、ユーザーが 1k-1 個の無効なジョブをキューにプッシュする 1k の編集を行うと、良くありません。既存の仕事を更新するか、新しい仕事に置き換える必要があると思います。私の知る限り、Redis
キューを検索するのjob_id
は遅いです。
RailsでActiveJobsを再スケジュールする適切な方法は何ですか(resque/sidekiqを使用)?
ruby - ActiveJob と Sidekiq で失敗したジョブの再試行カウンターを制限するにはどうすればよいですか?
アダプターとして使用してretries
、ジョブが失敗する回数を制限したいと考えています。ActiveJob
Sidekiq
Sidekiq を使用すると、次のことができます。
Sidekiq 構成はグローバル構成を提供しませんretry
。各ワーカーは、retry
オプションを設定する責任があります。したがって、適切に実行するには、ActiveJob 側で実装する必要があると思います。
ruby-on-rails - Sidekiq/ActiveJob のテスト - ActiveJob のジョブで Sidekiq ではないジョブ
次のように ActiveJob を使用するように、ユーザー クラス (devise を使用) にパッチを適用しました。
これを次のテストでテストしてみました。
log/test.log は次のようになります。
デバッガー内の enqueued_jobs は次のようになります。
bin/rails c --環境テスト
私のProfileは次のようになります:
誰にもアイデアはありますか?
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 をワーカーに渡すだけでよいのでしょうか?
ありとあらゆる洞察が高く評価され、
ドリュー