0

私は Rails 3.1.3 に取り組んでおり、delayed_job 3.0.1 を使用しています

有効なメール送信者のメールに問題があることがわかりました。

まず、ActionMailer を Gmail(xxx.gmail.com)で動作するように設定すると、正常に動作します。

しばらく本番サーバーにデプロイした後。

メールサーバーで動作するように新しい ActionMailer を設定しました。

そして、開発時にテストしました。次に、コードを本番サーバーにデプロイします。それもうまくいきます。

しかし、古いGmail(xxx.gmail.com)を送信者として使用してクライアントに送信される電子メールが時々あります。(エラーなく正しく送信されます)

PS。メール設定を保持するために rails_config gem を使用します。

運が良ければ2日間デバッグしようとしました。

  • Settings.mail_sender本番サーバーのレールコンソール内で何度も印刷します。正しく返されます (「応答なし」)。
  • delayed_job を再起動します。
  • サーバーを再起動します。
  • 送信者をログに記録してみてください。(差出人がGmailでない場合はログに書き込みます)。
  • gmailの設定やデータベースがないプロジェクトをチェックしてください。

私のコードがあります

# config/settings/production.yml
  mail_sender: '"no-reply" <no-reply@myapp.com>'


# MyMailer.rb

default :from => Settings.mail_sender

def greeting(receiver)                   
  @receiver = receiver
  Delayed::Worker.logger.info "-------In inform client"
  Delayed::Worker.logger.info "========inform client from #{Settings.mail_sender}"

  mail(:to => "#{receiver.full_name} <#{receiver.email}>",
    :subject => "Hello") do |format|                   
      format.html
  end

  Delayed::Worker.logger.info inspect
end


# code I call the delayed_job
  MyMailer.delay.greeting(client) if client.can_receive_email?

何か案が?ありがとう。

4

1 に答える 1

1

私はすでにアプリを新しいサーバーにデプロイしています(同じデータを使用しています)。問題はなくなりました。

次に、古いサーバーをしばらくシャットダウンしてから、古いサーバーを再起動します。

問題もなくなりました。古いサーバーでゾンビスレッドがスタックしているように見えるのは非常に混乱しています。

最後に、delayed_jobのプロセスがサーバーでスタックしてダンプの質問を探しているという本当の問題を見つけました。

于 2012-05-09T09:26:00.450 に答える