2017-03-07 5 views
1

多くの電子メールを送信するのに最も効率的なのは何ですか?どこにループを置くのですか?レーキタスクまたは遅延ジョブで?

  • 遅延ジョブを使用してレーキタスクをループする必要がありますか?

    task :publish => :environment do 
        # insert loop here do 
        # insert delayed job here 
        end 
    end 
    
  • 私はループを遅延ジョブの中に入れるべきですか?

    task :publish => :environment do 
        # insert delayed job here 
    end 
    
    # and on the job: 
    def perform 
        # insert loop here 
    end 
    

答えて

0

それはあなたが持っているどのように多くの背景の労働者に依存します。複数の作業者がいる場合は、これらのタスクを並行して実行できるため、最初のオプション(各ジョブを別々に作成し、レーキタスク内のループを使用する)がはるかに優れています。

また、転倒したり終了した場合にリスト全体にワーカーを再実行することについて心配する必要がないので、ワーカーメソッドの記述が容易になります。 (ただし、あなたの労働者が実用的であれば、誰でも等栄養であることを保証するのはまだ良い習慣ですが)

+0

あなたが言うことは、完璧な感覚を作ります。ありがとう! – Vincent

+0

もう1つ質問があります:デジタルオーシャンでサーバーを稼働しています。私はHerokuがあなたに労働者の数を設定できることを知っていますが、D.O.私はここに番号を設定する方法がわかりません。それは、Railsアプリかサーバーの設定(Nginx/Pumaを使用しています)かどうかです。 リクエスト数をテストするにはどうすればよいですか? – Vincent

+0

@ Vincent:あなたはどのように働き始めていますか?遅延ジョブのドキュメントはこちら(https://github.com/collectiveidea/delayed_job#running-jobs)には、複数のワーカーを実行するために必要なコマンドラインパラメータが表示されています。 – gwcodes

関連する問題