0

わかりました、これはおそらく悪いことですが.. ここで質問です! 共有環境 (site5) でかなり軽量なアプリを実行したいと考えています。理想的には、メールのキューイングを容易にするためにdelayed_jobを使用したいと思います(時々〜200以上)。ただし、共有環境であるため、常にバックグラウンド プロセスを実行する必要はありません (十分に公平です)。

したがって、私の計画では、遅延ジョブを使用してメールをキューに入れ、1 時間ごとに cron ジョブを起動し、数通のメール (10 通程度) を送信してから、プロセスを強制終了します。そして繰り返す。

Q) 簡単にセットアップできる rake jobs:works:1 と同等のタスクはありますか? - ポインターが便利です。

私は「これはひどい考えです、そこに行かないでください」という答えにかなりオープンです..その場合、別のキューイング戦略を見るかもしれません..

4

2 に答える 2

2

次の手順を実行すると、遅延したジョブを取得して、特定の数のジョブのみを処理できます。

Delayed::Worker.new.work_off(10)

スクリプトを起動してcronから実行するか、「railsrunner」を使用できます。

rails runner -e production 'Delayed::Worker.new.work_off(10)'

それが良い考えであるかどうかの主な問題は、すべてのジョブを妥当な時間枠で確実に処理するのに十分な小さな値を実際に計算することだと思います。また、処理するたびに、または処理する必要があるかどうかを確認するたびに、レール環境を起動するオーバーヘッドがあります。メモリやCPU使用率の急上昇に特に厳しい場合、共有環境で問題が発生する可能性があります。

于 2012-07-26T11:36:08.137 に答える
0

「ワーカー」(仕事を探してスリープするだけのデーモン) をスキップして、cron に 10.times { MailerJob.first.perform } のカスタム rake タスクを起動させないでください。

その前にラインでアプリであることを要求する必要があるだけなので、ロードされます。

于 2012-07-26T11:42:54.990 に答える