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

ruby - Rufus Scheduler :first_in オプションが cron で不明

Rufus Scheduler (Dashing 内) を使用して cron ジョブをスケジュールしようとしていますが、サーバーのスピンアップ時に一度実行することもできます。ここで、次のことを行うように言っているreadme に従っています。

これを実行しようとすると、ジョブで次のエラーが発生します。

誰かがこれに出くわしましたか?

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

ruby - Ruby での大規模なスケジューリング

タスクの大規模な動的コレクション用のスケジューラが必要です。現在、resque-schedulerrufus-scheduler、およびclockworkを見ています。どちら (またはどの代替手段) を使用するかを選択する際のアドバイスに感謝します。

いくつかの詳細:

  • 定期的に実行される大量のタスク (最大 100K) があります。
  • 最短の実行期間は 1 時間です。
  • 新しいタスクが時々表示される場合があります。既存のタスクは変更または削除される場合があります。
  • ここでは、遅延の最小化のスケジューリングはミッション クリティカルではありません (スケーラビリティと持続可能性が最も重要です)。
  • タスクの実行は重い操作ではなく、簡単に並列化できます。

要約すると、動的に変化する大規模なタスクのコレクションを処理できる、Ruby プロジェクト用の cron のようなものが必要です。

更新:私は 1 日かけてライブラリのスケジューリングを試しましたが、新しく得た経験を簡単にまとめたいと思います。

Clockwork と resque-scheduler ライブラリは、より詳細なドキュメントを備えたより成熟したプロジェクトであるため、ここでは注意を払いませんでした。Resque-scheduler は rufus-scheduler に基づいていますが、Clockwork はそれに触発されており、どちらも私が探しているソリューションに使用できます。

どちらも、個別のプロセスで実行されることになっているスタンドアロン サービスであり、1 回または繰り返し実行するようにスケジュールされた実質的に無制限の量のタスクを処理できます。タスクはスレッド内で実行されます。

クロックワークの長所:

  • データベースから (ActiveRecord または任意のソースを介して) スケジュールされたタスクをロードする機能があります。
  • また、DB からのデータ更新をポーリングすることにより、スケジュールされたタスクを動的に更新できます。

時計仕掛けの短所:

  • ここでは、DB ポーリングがボトルネックになる可能性があります。
  • ポーリング間隔は 1 分 (およびすべてのタスクを再スケジュールする時間) で、少し遅すぎます。
  • スケジュールされたタスクのアドレス指定 (スケジュール解除または変更) は文書化されていないため、この機能を使用することは私にはハックのように見えます。

ZeroMQ メッセージによるスケジューリング制御を可能にするために、Clockwork (これはスケジューリングを制御する gem のコア部分です) の代替の Manager クラスを実装しました。したがって、私のプロジェクトのメイン サービスは、「毎日これを実行する」または「タスク #10 のスケジュールを解除する」などのコマンドをスケジューラに送信でき、スケジューラは各リクエストをすぐに実行します。

resque-scheduler の経験はあまりありませんが、現時点では、より優れたソリューションのように見えます。

resque-scheduler の長所:

  • Redis ベースの永続性。マニュアルは、スケジュールされたタスクがサービスの再起動後に救出される可能性があると主張しています.
  • クリーンな API による動的スケジューリング。Resque.remove_schedule(name)特定のタスクをドロップするために呼び出すだけです。
  • ウェブ UI。あまり重要ではありませんが、あると便利です。

resque スケジューラ:

  • Redis をインストールする必要があります。

よく見ると何か他のものが現れるかもしれませんが、現時点では他に何もありません。

それが私が今持っているものです。ところで、スケジューリング関連の Ruby gems へのリンクをGitHubに多数公開しました。

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

ruby-on-rails-4 - 特定の時間にメールの送信を遅らせるように Resche スケジュールを設定する

これが重複している場合は申し訳ありません。これを検索しようとしましたが、使用する検索用語がわからず、実際には何も見つかりませんでした

私は現在、アプリケーションでサーバーが起動したときにジョブのスケジュールを設定する方法について研究しています。私が作りたい機能は、毎週/毎月のメールをすべてのユーザーに送信するようなものです。問題は、送信する必要があるメールの量が膨大な場合、わずか数時間で送信できないことです (夜間にユーザーにメールを送信するのは好きではありません)。それは一時停止し、翌朝にこの仕事を続けます....

検索した限りでは、resque-scheduler と rufus-scheduler という 2 つの宝石が見つかりました。どれを掘り下げることに集中すればよいのかよくわかりません。

誰かが私が行く一般的な方向を指摘できますか? それらのどれがそれらのようなタスクを実行できる組み込み関数を持っていますか? それとも、自分でスケジュールを立てる必要がありますか? ...

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

ruby-on-rails - Heroku のワーカー dyno に rufus-scheduler をスケジュールする

rufus-scheduler を使用してバックグラウンド タスクを実行したいと考えています。私は現在、Sidekiq のワーカー dyno を持っており、理想的にはそのプロセスにスケジュールを設定したいと考えています。https://github.com/jmettraux/rufus-scheduler#so-railsのドキュメントに従って rufus-scheduler をテストする

Webとワーカーの両方で出てくるので、ワーカープロセスを使ってほしいです。どうすればそれを達成できますか?

サンプル出力は次のとおりです。

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

ruby-on-rails - Rufus-scheduler にファイルの変更を反映させる方法

ROR アプリケーションで Rufus-scheduler gem を使用して、バックグラウンドでメールを送信しています。私のセットアップは次のようなものです:

クラス メソッドに加えた変更が.send_some_emailRufus-scheduler タスクに反映されません。これを修正するにはどうすればよいですか? 変更を加えるたびにサーバーを再起動したくありません。

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

ruby-on-rails - 複数の EC2 インスタンスがある場合の rufus-scheduler の問題

Rails アプリを 2 つの EC2 インスタンスにデプロイしました。メールを送信するために rufus-scheduler を使用して Job を 24 時間ごとに実行するようにスケジュールしました。

ただし、スケジューラは 2 つのインスタンスで別々に実行されています。

1 つのインスタンスでのみスケジューラを実行する必要があります。それで、この問題について助けてもらえますか?

ありがとう

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

puma - Puma 2.9.2 と rufus-scheduler 3.0.3 の非互換性

Ruby on Rails 4.1.4 Web アプリで Rufus Scheduler 3.0.3 を使用していますが、Unicorn とうまく連携しています。私は Puma に移行しましたが、それはすばらしいことですが、Rufus が Puma (デーモン化) で動作していないことに気付きました。

この問題 #183 (コメント) https://github.com/puma/puma/issues/183#issuecomment-59386038を読みましたが、これは以前のバージョンではクローズされていますが、まだ機能しておらず、すでに修正されています。

その間、回避策があるかどうかはわかりません。

更新:表示するログはあまりありません。私の rufus スケジューラ タスクは Unicorn で実行しているときは機能していますが、サーバーを Puma に変更すると、ラップトップで自動化されたタスクが実行されません。表示するログさえありません。

現在の Rufus スケジューラ ファイルを追加するだけです。

task_scheduler.rb:

構成が不足していますか?

Puma 側では、この構成ファイル config/puma/development.rb だけを持っています。

ワーカーなどを設定しません...