2011-08-09 4 views
1

を設定します私の「遅延の仕事」を起動するために、公式の宝石のマニュアルに書かれた私は、コードは、私はRailsの3.0.9にルビーを使用していますが、私はこのように電子メールを送信するために、セットアップに自分のWebアプリケーションの<a href="https://github.com/collectiveidea/delayed_job" rel="nofollow">delay_job</a>宝石をしようとしています遅延ジョブズ宝石

$ RAILS_ENV=production script/delayed_job start 
$ RAILS_ENV=production script/delayed_job stop 

# Runs two workers in separate processes. 
$ RAILS_ENV=production script/delayed_job -n 2 start 
$ RAILS_ENV=production script/delayed_job stop 

の次の行のいずれかを使用するか、rake jobs:workタスクを呼び出す必要があります。プロダクションモードで

私は RAILS_ENV=...文のいずれかを使用することを好むが、私はところで(私はアプリケーションの起動時に労働者を開始するためにそのコードを追加する必要があります(つまり、どのファイルで、ある) を知りたいのですが:現時点では、私はアプリケーションを配備するためにカピストラノを使用していません)。

さらに、正確に「ワーカー」が何であるか、そしてVPSホスティング(Ubuntu 10.04 LTSを実行している)がそれらの複数を実行できるかどうか、またはサーバが動作できるワーカーの数を知る方法を知りたいと思います。

最後に、config/initializers/delayed_job.rbファイルにどのようなオプションを追加できるのか、また遅延ジョブの宝石に関するアドバイスやトリックがあるかどうかを知りたいと思います。

+0

""初期化プロセスを自動化する "という意味は?"あなたはアプリケーションの開始時に労働者を始めることを意味しますか? VPSと労働者の要件については、従業員が何を実行しているのか、どのようなVPSを所有しているのか分からないため、答えることはできません。いくつかのコードを投稿してください。 –

+0

@Devin M - はい、アプリケーション開始時に作業者を開始することを意味します。私のアプリケーションで特定のコーディングの問題について質問していないので、投稿するコードは何ですか? – Backo

+0

実行することができるワーカーの数は、どのタイプのコードをワーカーで実行しているかによって異なります。アプリケーションの開始まで私はあなたのための答えを仕上げてみましょう。 –

答えて

1

アプリケーションの開始時に作業者を開始するには、インナーライザーから適切なコマンドを呼び出します。これは次のようになり行うコード:パスが最も可能性が高い少しオフとがあるかもしれません

system "RAILS_ENV=production #{Rails.root.join('script','delayed_job')} stop" 
system "RAILS_ENV=production #{Rails.root.join('script','delayed_job')} -n 2 start" 

はそれを行うためのクリーンな方法ですが、私は私の頭の上のオフに何も知りません。

+0

例えば、私のApache2サーバを再起動すると、ワーカーは作業をやめてから再起動するか、それらが継続的に実行されます(つまり、重複します)。また、他の質問に言及すると、どのようなオプションを遅延ジョブイニシャライザファイルに追加できますか? – Backo

+0

あなたの労働者は、自然に死ぬまで、うまく走り続けます。しかし、アプリケーションが再起動しても、実行中のワーカーは停止して再度起動し、複数のワーカーが実行されないようにします。 –

+0

設定については、「Gory Details」という見出しの下にある遅延ジョブのReadmeを参照してください。 –

関連する問題