問題タブ [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 に答える
567 参照

ruby-on-rails - バックグラウンドプロセスをレールのどこに配置する必要がありますか?

Rufusスケジューラーで管理しているcronタイプのジョブを持つRailsプロジェクトを構築しています。Railsでこれを適切に設定する方法について2つの質問があります。

  1. ジョブのコードを配置するのに最適な場所はどこですか?
  2. ジョブをスケジュールするためにRufusコードをどこに配置する必要がありますか?どのように始めればよいですか?
0 投票する
3 に答える
1321 参照

ruby-on-rails - Railsアプリ内のシンプルなタスクスケジューリング

Railsアプリ内で簡単なタスクスケジューリングを設定する方法はありますか?1時間ごと、毎日、または毎週実行したいコードがあります。それらを別々のスクリプトに分割したくないので、cronジョブを介してスケジュールする必要があります。その場合、スクリプトをバックアップすることを忘れないでください。サーバーを再構築する場合は、すべてのcronジョブを追加し直す必要がありますが、必要なものが少し面倒に思えます。

Railsアプリのどこかでジョブをスケジュールし、必要なときに魔法のように実行できるようにしたいと思います。何か案は?

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

ruby-on-rails - Rufus スケジューラが本番環境にログインしない

私の Rails アプリは、初期化子で rufus-scheduler を使用してプロセスを開始します。以下は、イニシャライザのコードの簡素化されたバージョンです。

すべての環境で、コードはチャンピオンのように実行されます。populate プロセスはその役割を果たし、正常に終了します。ただし、問題はロギングにあります。RAILS_ENV が「production」に設定されている場合、cron ブロック内のメッセージはまったくログに記録されません。

Passenger 2.2.9 と Rails 2.3.5 を使用しています。これら 2 つの原因のいずれかが、プロセスのログ記録を妨げていると考えられます。誰がそれが何であるか、そしてそれを本番環境にログインさせる方法を教えてもらえますか?

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

ruby-on-rails - Rails keeps being rebooted in production Passenger

I'm running an application that kicks off a Rufus Scheduler process in an initializer. The application is running with Passenger in production and I've noticed a couple weird behaviors:

First, in order to restart the server and make sure the initializer gets run, you have to both touch tmp/restart.txt and load the app in a browser. At that point, the initializer fires. The horrible thing is that if you only do the touch, the processes scheduled by Rufus get reset and aren't rescheduled until you load the app in a browser.

This alone I can deal with. But this leads to the second problem: I'll notice that the scheduled process hasn't run, so I load a page and suddenly the log file is telling me that it's running the initializers as if I'd rebooted. So, at some point, Passenger is randomly rebooting as if I'd touched tmp/restart.txt and wiping out my scheduled processes.

I have an incredibly poor understanding of Passenger and Rails's integration, so I don't know whether this occasional rebooting is aberrant or all part of the architecture. Can anyone offer any wisdom on this situation?

0 投票する
3 に答える
14954 参照

ruby-on-rails - Rubyで実行中のプロセスを確認するにはどうすればよいですか?

スケジューラー(Rufusスケジューラー)を使用して、「ar_sendmail」(ARmailerから)と呼ばれるプロセスを毎分起動します。

メモリを消費しないようにするために、そのようなプロセスがすでに実行されている場合は、プロセスを起動しないでください。

このプロセスがすでに実行されているかどうかを確認するにはどうすればよいですか?以下の後に何が起こりunlessますか?

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

ruby-on-rails - 各delayed_job rake jobs:work で追加の rufus-scheduler スレッドを取得する

rufus-scheduler を使用して、1 分ごとにチェックして、delayed_job キューに配置する準備ができているジョブがあるかどうかを確認しようとしています。

#{RAILS_ROOT}/config/initializers に、スケジューラを開始する初期化スクリプトを用意します。残念ながら、rake の jobs:work は Rails の初期化プロセスも実行するため、jobs:work started ごとに別のプロセスが開始されます。

どうすればこれを防ぐことができますか?

XP pro sp3でruby 1.8.6.26、rails 2.3.5、dj 1.8.5、rufus-scheduler 2.0.6を実行しています

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

ruby - Rufus::Schedulerjoinはついにrubyで終了できません

Rufus::Schedulerを使用してタスクをスケジュールします。コードは次のとおりです。

コードを実行した後、出力は「xxxx」になりますが、呼び出しメソッドを実行した後、結合はそれ自体で終了できず、常にハングアップします。

ジョブの終了を待った後に参加を終了する方法はありますか?ありがとう。

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

ruby-on-rails - Rails :environment タスクに依存する rake タスクをイニシャライザ ファイルから呼び出す

私は rufus スケジューラを使用して、展開システムからの cron ジョブを置き換え、展開時にアプリケーションが読み込まれたときにそれらのジョブを開始します。

これで、この scheduler.rb をアプリケーション ルート ディレクトリの config/initializers ディレクトリに配置しました。

scheduler.rb ファイルの内容は次のとおりです。

アプリケーション サーバーを起動すると、次のようなエラー メッセージが表示されます。

ここで、「環境」は、呼び出しているタスク「tempfile:delete_all」の依存タスクです。この :environment タスクは railties/lib/tasks/misc.rake で定義されています。

この misc.file へのパスをハードコーディングしてロードしたくありません。この問題を解決するためのよりクリーンな方法はありますか?

ありがとう。

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

ruby-on-rails - rufus-schedulerを使用して、特定の日付から隔週でタスクを実行するにはどうすればよいですか?

今日から2週間ごとにタスクを実行しようとしていますが、私のテストでは、rufusスケジューラーが起動すると、追いつくまで何度もタスクを実行しようとしているようです。

たとえば、このようなことを試してみると

時刻が5:57の場合、スケジューラーは5:20と5:40に「逃した」時刻を補うために2回メールを送信しようとします...意味がありますか?「追いつく」ことなく通常どおりに送信する方法はありますか?

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

ruby - rufus-schedulerとcronの違いは何ですか?

https://github.com/jmettraux/rufus-schedulerは次のように述べています。

rufus-schedulerは、コード(ジョブ)をスケジューリングするためのRubygemです。特定の時間、特定の時間、x回ごと、または単にCRONステートメントを介してジョブを実行することを理解します。

rufus-schedulerは、Ruby内で実行されるため、cron/atの代わりにはなりません。

それで、それがルビーの中で走ったらどうなるでしょうか?rubyのsystemコマンドを使用してcronにアクセスできませんか?