2017-01-30 5 views
0

遅延ジョブに関するクエリはほとんどありません。私はこの2つの宝石を今開発中に設定しました。しかし、私はそれらを使用する必要があるかどうか、または私がそれをサーバでどのように使うべきかを私が使用しているかどうかはわかりません。遅延ジョブ:使用方法と使用方法

gem 'delayed_job_active_record' 
gem 'daemons', '~> 1.2', '>= 1.2.3' 
  1. 私は年に二回の周り300-400顧客に電子メールを送信する簡単なアプリケーションを持っています。そのような少数の電子メールに遅延雇用宝石を使用する必要がありますか?私たちのサーバーは、年中2回は忙しくはありません。

  2. 遅延ジョブを使用する場合は、最初にデーモンを起動する必要があります。開発中に私はこれを好きですbundle exec rake jobs:work。このプロセスは常にサーバーで実行されるためです。これはパフォーマンスの問題を引き起こしますか?遅延処理プロセスを実行するために別のサーバーなどを使用する必要がありますか?

  3. 最後に、プロダクションでコマンドを実行する方法bundle exec rake jobs:work。現在、私は端末を開いてコマンドを実行します。しかし、私は端末を閉じるとプロセスも停止すると思います。では、バックグラウンドで実行し続けるためにはどうすればよいでしょうか?

+1

これは私の意見ですが、残念だとは思わないが、パフォーマンスの問題が発生するとは思わない。これは、ミッションクリティカルな操作のように見えるしていませんので、あなたは、ジョブごとに5または10分、または代わりに、サーバーへの影響を最小限に抑え、おそらくはるかに頻繁にあるデフォルト値の何かのためにのみポーリングにdelayed_jobを微調整することができます。 – Iceman

答えて

1

第一 - 私はそれが我々が電子メールサーバとダウンまたは他の任意のエラーに直面することができ、あなたのクライアントは、この電子メールを受信しないだろうと想像し、すべての非同期ジョブのためのDJを使用することをお勧めだと思います、DJと、エラーの場合は後でジョブを再試行します。

第2回 - 長い処理時間や1分あたりのジョブ数が多いヘビー・ジョブがない限り、DJを実行するためにサーバー全体を必要としないと思います。問題を解決するには十分です。

第三 - 成り上がりスクリプトはこれを行うには正しい方法で、S.Oは宝石フォアマンは、これであなたを助けることができ、これを処理し、それがダウンして取得する場合、サービスを再起動します。

成り上がり例: https://larry-price.com/blog/2013/08/31/using-foreman-to-create-an-upstart-service

屋を参照してください!

関連する問題