2012-04-21 10 views
0

私はcronジョブと遅延ジョブを提供していますので、バックグラウンドジョブを使用してメールを送信したいのですが、delayed_jobを使用しています。しかし作業を開始する際に+ delayed_jobを使用する場合

def dashboard  
     @user = User.find(params[:id])  
     UserMailer.delay.initial_email(@user)  
end  

私のコード
方法メール送信でこのコマンドをダッシュ​​ボードに、これまでユーザーのログインには、次の自分のアドレスに送信され、火災やメールであるときにcronジョブで、このレーキを設定したいUserMailer

def initial_email(user)  
     @user = user  
     mail(:to => user.email,:subject => "Welcome to my website!")  
    end  

私は「いつでも」Gemを使用していますので、私は自分のshedule.rbファイルに何を書いて、ダッシュボードにログインしたときに作業者を手動で実行せずにメールを受け取るようにしてください。
私を助けてください。
ありがとうございます。

答えて

0

DelayedJobはバックグラウンドで常に実行されているため、起動する必要はありません。 ワーカーエージェントはキューをチェックして、実行する必要のあるタスクがあるかどうかを確認して実行します。 これは、実行する必要があるタスクのバックグラウンドチェックで実行されるアプリケーションの2番目のインスタンスによく似ています。

したがって、ワーカーエージェントをscript/delayed_job startで開始し、常に実行させる必要があります。 monitまたはgodのような別のツールを使用して、ワーカーエージェントを監視して常に稼動していることを確認することができます。

+0

これらの情報をお寄せいただきありがとうございます。または、私は再び労働者を開始する必要がありますか? 私が基本的に必要とするのは、ユーザーが彼のダッシュボードメールにログインするときに送信する必要があることです。あなたが私にそのコードを提案すれば、あなたは大歓迎です。あるいは、前のコードの変更も私にはいいです...そして、 。 –

関連する問題