問題タブ [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.
ruby-on-rails - cron タスクをスケジュールする Resque スケジューラー
私は resque スケジューラを初めて使用します。Rails 3 を使用してソーシャル ネットワーク アプリケーションを開発しました。このアプリケーションでは、すべての投稿の人気を一定期間監視し、postgres db に保存したいと考えています。人気度を計算する resque worker がありますが、スケジュールする方法がわかりません。私の要件は次のとおりです。
- 投稿の作成日から最初の 3 日間は、2 時間ごとに人気度を計算する必要があります。
- 3 日後、3 日に 1 回計算する必要があります (1 か月間、つまり 30/3 = 合計 10 回)
- 1 か月後、週に 1 回 (2 か月間) 計算する必要があります。
- 2ヶ月目以降は月1回、3ヶ月間。
このスケジュールは静的であり、動的スケジュールは必要ないと思います。それで、誰かが resque_scheduler.yml に入れるべきものを手伝ってくれませんか?? これを理解するには本当に助けが必要です。よろしくお願いします!!!
ruby - resque-scheduler がジョブの削除で失敗する
Github の POC を使用しました (キューが見つからなかったので追加しました:
次のエラーが表示されます。
ruby-on-rails - Railsで動的スケジューリングが機能しない
実行する必要があるたびに、レールで動的スケジューリングが機能しない
rake resque:scheduler
rake resque:work
私の作業環境
rails 3.2.13
resque-1.25.2
resque-scheduler-3.0.0
ruby 2.0.0p247
この問題の解決策はありますか?
ruby-on-rails - resque-web で resque-scheduler タブを表示する
resque-scheduler repo のすべての指示に従って、resque-web インターフェースに「Delayed」タブと「Schedule」タブを表示しましたが、何も表示されませんでした。
インポートされた宝石は次のとおりです。
resque-web に通常スケジューラを追加するために、./config/initializers/resque_config.rb
resque-web をロードするために、Rails ルートを使用しました。
それでも、resque Web インターフェイスには影響しません...
ruby-on-rails - Resque-Scheduler が Rails 4.2 の ActiveJob で動作しない
Rails 4.2 でスケジュールされたジョブを動作させることができた人はいますか?
私は resque を使用しており、resque-scheduler を使用してジョブをスケジュールしようとしています。ロードされてスケジューラが実行されるスケジュールがあり、ジョブを実行しているように見えますが、何もしません。
このようなジョブをキューに入れることができ、それらは処理されます。
そして、この出力をワーカーログに取得します
しかし、ジョブをスケジュールしようとすると、エンキューされているように見えますが、何もしていません。
これがschedule.ymlです
スケジュールされたジョブからの出力は次のとおりです。
このhttp://dev.mikamai.com/post/96343027199/rails-4-2-new-gems-active-job-and-global-id を読んだ後、ActiveJob と GlobalId に関係があるのではないかと疑っています。
エンキューされた違いを見てください
対予定
ジョブ自体は次の方法で生成されました
それらは次のようになります。
これに関するヘルプは大歓迎です。事前に感謝します。
********* アップデート *********
action_job railtie を削除し、Resque と Resque-Scheduler のみを使用しており、スケジュールされたジョブは現在機能しています。したがって、これは ActionJob/GlobalId に関連しているようです。Rails プロジェクトでイシューをオープンしました。うまくいけば、彼らはすぐにそれを修正します。
****** 2 回目の更新 ********* これに関する最新情報を入手しました。ActiveJob コードベースで働く Cristianbica 氏は、次のように述べています。「これまでのところ、定期的なジョブについては考えていませんでした。これをサポートしていないのは、外部の gem なしでこれをサポートしているアダプターがないためです。しかし、これは非常に優れた機能ですが、ジョブに間に合うとは思えません。 4.2. また、レールに含めるのに適しているかどうかもわかりません"
ruby-on-rails-4 - 特定の時間にメールの送信を遅らせるように Resche スケジュールを設定する
これが重複している場合は申し訳ありません。これを検索しようとしましたが、使用する検索用語がわからず、実際には何も見つかりませんでした
私は現在、アプリケーションでサーバーが起動したときにジョブのスケジュールを設定する方法について研究しています。私が作りたい機能は、毎週/毎月のメールをすべてのユーザーに送信するようなものです。問題は、送信する必要があるメールの量が膨大な場合、わずか数時間で送信できないことです (夜間にユーザーにメールを送信するのは好きではありません)。それは一時停止し、翌朝にこの仕事を続けます....
検索した限りでは、resque-scheduler と rufus-scheduler という 2 つの宝石が見つかりました。どれを掘り下げることに集中すればよいのかよくわかりません。
誰かが私が行く一般的な方向を指摘できますか? それらのどれがそれらのようなタスクを実行できる組み込み関数を持っていますか? それとも、自分でスケジュールを立てる必要がありますか? ...
resque - resque-schedular で毎月の繰り返しジョブを動的に設定する
これで頭を壁にぶつけます。resque-scheduler でジョブを動的に追加しようとしています。毎月のジョブを作成するための構文は何ですか? たとえば、次のコードは毎分実行するジョブを設定します。
毎月の構文は次のようになります。config[:every] = "1 month" でしょうか? これについての resque-scheduler ドキュメントで答えが見つからないようです。
ありがとう。
ruby-on-rails - 余分な/恣意的なものを防ぐ方法は? resque ワーカーが作成されないようにする - resque-scheduler ジョブがこれらの無効なワーカーで実行されない原因となります
しばらく調べていた問題があり、それを理解できません...どんな助けも大歓迎です。
Heroku で redis、resque、resque-scheduler を実行しています。スケジュールされたジョブの多くは実行されません。/resque/failed Web ページには、レールがワーカー プロセスにロードされなかったことを示すエラーが表示されます。エラーの多くは、/resque/failed ページの一覧には表示されません。ただし、何度も実行するジョブ。
また、/resque/workers には、Heroku で実行しているよりも多くのワーカーが表示されます。これを説明することはできません。Rails コンソールからワーカーを強制終了し、Heroku ワーカーを再起動すると、すべて問題ないように見えますが、最終的に /resque/workers ページにさらに多くのワーカーが表示されます。注: これらのワーカーは、Heroku の再起動 (24 時間ごとに行われます) の結果として表示されるわけではありません。3 番目のワーカー (Heroku で 2 を実行) の出現を見た後、「heroku ps」を実行しました。7時間。
resque-scheduler が待機中および準備完了のワーカー プロセスと通信するために使用するメカニズムが何らかの形で壊れていると思われます。そして、追加のワーカーは、resque メカニズムによってまだ「認識」されている機能していない Rails プロセスです (つまり、これらの機能していないワーカーのエントリが Redis に存在します)。
詳細: - /resque/workers Web ページに 6 個のワーカーが表示されていることに気付きました。そのため、Rails コンソールを使用してすべてのワーカーを削除しました。次に、Heroku でワーカーを再起動しました。それでも何も起こらなかったので、Heroku で resque-scheduler プロセスを再起動しました。まだ変更はありませんが、/resque/workers ページには正しい数の resque ワーカー (heroku ワーカー プロセスの数と一致する数) が表示されます。- 約 12 時間後、/resque/workers ページにさらに多くのワーカーが表示されることに気付きました。なんてこと?-一部のジョブは処理されますが、これらは各ワーカーの完了した合計に表示されます (つまり、すべてのワーカーがゼロ以外の num_processed 値を示します)。-ワーカーが時々実行されることを示すログが表示されます。
ここに明らかな問題がありますか?誰かが resque ワーカーと通信する resque-scheduler に関連する Redis のキー/エントリ構造を説明できますか? resque は ruby 1.9.2 と互換性がなくなったことに気付きましたが、問題が断続的であるため、それが原因とは考えられません。そして、私たちは resque の v. 2 ではなく v. 1 を使用していることに気付きました。
私はこの似たような問題を読みました: Resque on Heroku cedar stack Worker count still exists after the worker terminatesしかし、それは私の問題ではありません (コマンドラインで ENV 変数を heroku ワーカー/別名 resque ワーカー プロセスに渡さないため)。
これに関連している可能性がありますが: https://github.com/resque/resque/issues/319#issuecomment-1789239ワーカーの rake タスク コマンド ラインに ENV 変数を渡しません。
エラーとログ情報:
resque-scheduler によってスケジュール/キューに入れられたすべてのジョブについて、それが実行され、正しい時間に実行されていることを示すログ エントリが表示されます。次に例を示します。
ほとんどの場合、ワーカーが走っているのを見たことはありません。時々私はします(再び、ログから):
/resque/failed のエラー例: Exception NameError Error uninitialized constant WorkerProcess => resque ワーカー プロセスで Rails がロードされていない (またはロードされていない) ことを示します。
環境とバージョン:
宝石: redis-3.0.6 resque-1.25.1 resque-scheduler-2.3.1
Procfile (Heroku で使用): web: bin/start-nginx bundle exec unicorn --env $RACK_ENV -c ./config/unicorn.rb worker: bundle exec rake jobs:work scheduler: bundle exec rake resque:scheduler
ワーカーのレーキ タスク:
resque.rake:
task "jobs:work" => "resque:work"
-- マイク・パッパー