問題タブ [resque-scheduler]

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 に答える
106 参照

ruby-on-rails - Resque Scheduler が期待どおりにモデルを更新しない

resque-scheduler を使用して、Twitter API への投稿をスケジュールしています。私のデータベースには、API をクエリし、ツイートの ID でレコードを更新するメソッドを持つSocialMediaPostモデルがあります。post_tweetこのコードを resque-scheduler の外で実行すると、期待どおりに動作します。ただし、投稿をキューに入れると、if/elseブロック内のすべてがスキップされているように見えます。Twitter アカウントにアクセスすると、投稿が成功したことがわかりますが、データベース エントリを確認すると、エントリにtwitter_idtwitter_uid、またはがありませんtwitter_link

これが私のSocialMediaPostモデルです:

ここに私の resque ワーカーがありPostmanます:

いくつかの場所にa を挿入しようとしましたbinding.pryが、 resque はバインディングをスキップします。無限ループを作成するこのバグupdate_columnsを回避する方法として、このメソッドを使用していることに注意してください。

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

ruby-on-rails - Rails サーバー ログで Resque ログ出力を表示する

Resque/Resque-Scheduler がバックグラウンド ジョブを実行している Puma サーバー上に Rails 4 アプリがあります。私が知りたいのは、2 つの Resque ワーカーのログ出力をサーバー ログにマージする方法、またはそれは不可能ですが、Resque ワーカーのログ出力を表示する方法です。現在、ワーカーのログ出力を表示する方法を理解できていないため、内部で何が起こっているのかわかりません。この blogpostを見つけました。これは、ファイルに次のようなものを追加することを提案していresque.rakeます:

それはうまくいきませんでした。コメントで に置き換える提案も試しましたが、それResque.logger = ActiveSupport::BufferedLogger.new(logfile)Resque.logger = ActiveSupport::Logger.new(logfile)うまくいきませんでした。2 番目のオプションを使用してもNoMethodError: undefined method 'logger=' for Resque:Module、ワーカーを起動しようとするとエラーが発生します。

ここに私の現在のresque.rakeファイルがあります:

私はロギングに関する Resque のドキュメントを見てきましたが、Rails でのロギングについてあまり知らないので、そこにあるものの使い方がわかりません。この件に関する他の有用なリソースを見つけることができませんでした。

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

ruby-on-rails - HerokuでResque処理を一時停止するには?

私は Delayed_jobs から Resque に移行しており、多くのジョブが常にキューに入れられていることを考えると (将来いくつか)、安全な新しいリリースを行うためにいつワーカーを 0 にスケールダウンできるかを知ることは不可能です。

Heroku のワーカーに現在のジョブの処理を終了するが、新しいジョブを実行しないように安全に伝える方法はありますか?

そうすれば、ジョブが何も処理していないときに、ワーカーをゼロにスケールダウンして、Heroku で新しいバージョンを安全にリリースできます。

その後、ワーカー数をスケールアップして処理を再開できます。

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

ruby-on-rails - resque スケジューラが認識できないシグナル SIGUSR1

resque スケジューラを実行する方法がまったくわかりません。単一のタスクをキューに入れて手動で実行すると正常に動作しますが、コマンド rake resque:scheduler --trace を使用して resque スケジューラを実装しようとすると、ArgumentError: unsupported signal SIGUSR1 が発生します。resque スケジューラに必要なファイルは次のとおりです。

config/initializers/resque.rb

config/resque.yml

lib/タスク/resque.rake

config/resque_schedule.yml

rake resque:scheduler コマンドのエラー メッセージは次のとおりです。 エラー メッセージ

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

ruby-on-rails - Rails コンソールで Resque をテストする方法

ローカル マシンで resque と resque-scheduler を実行してます

自分のジョブが機能しているかどうか、またはRails コンソールで次のコードをコピー アンド ペーストしてテストできますか?

これは私のSnippetHighlighter.rbコードです

誰も同じ経験がありますか?ありがとう

0 投票する
0 に答える
957 参照

ruby-on-rails - Resqueスケジューラーは、レールプロダクションで常に実行されるとは限りません

私の質問が既に存在し、ここで解決されている場合は申し訳ありませんが、何も役に立ちません。私はレールアプリを持っています。私はResqueをうまく使っています。今、遅延したタスクでレスキュー スケジューラを動作させたいと考えています。たとえば、30 秒の遅延でメールを送信したいとします。私の Gemfile:

resque.rb:

resque.rake:

deploy.rb:

だから私が実行したとき:Resque.enqueue(TestJob, 'now job')それはうまくいきます^しかし、私が実行したとき:Resque.enqueue_in(15.seconds, TestJob, '15 sec delayed job')次のデプロイまで何も起こりません:

では、遅延したタスクをオンザフライで実行するようにレスキュー スケジューラを設定するにはどうすればよいでしょうか。

ps実行すると:

コンソールを介して実稼働サーバーで、レスキュースケジューラが正常に機能し、新しい遅延タスクをすべて希望どおりに処理しています

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

ruby-on-rails - Resque および Resque-scheduler を使用してバックグラウンドでジョブを処理する

Ruby on Rails をバックエンドとして使用して iOS アプリを構築しています。Resque および Resque-scheduler を使用して、('deliveries' キューを使用して) 遅延したジョブを将来実行しようとしているときに、問題について助けが必要です。

基本的に、Resque と Resque-scheduler の両方をフォアグラウンドで実行すると、ジョブは正しく動作しますが、バックグラウンドで ( を使用してBACKGROUND=yes) 実行すると、Resque でジョブが処理されません。

下のスクリーンショットを見ると、Resque-scheduler が「Delayed Items」を処理していることがわかりますが、Resque は実際には処理していません。VERBOSE=1ログを見ることができるように、Resqueに設定しました。

ここに画像の説明を入力

私が間違っていることは何か分かりますか?私の構成設定が間違っている可能性がありますか?これが私の構成です:

ここに画像の説明を入力

本当にありがとう!必要に応じて、お気軽にお問い合わせください。

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

ruby-on-rails - ActiveJob が Resque ワーカーで実行されているか、アプリケーション内で実行されているかを判断する方法はありますか?

Rails アプリに ActiveJob::Base から拡張された Job があり、それを呼び出すには 2 つの方法があります。

  1. 毎日の ResqueScheduler。Resque ワーカーによって取得され、処理されます。
  2. #perform_now 呼び出しを介してアプリ内で実行されるため、アプリによって処理されます。

ジョブが Resque ワーカーによって処理されているかどうかをジョブ内で判断する方法はありますか?