0

で動作するresqueワーカークラスと直接ActionMailer動作する別のクラスがあります。Mail簡単な例を次に示します。

class NotificationWorker
  def self.perform(id)
    Mailer.delivery_method.settings = {
      # custom settings here
    }

    # Working with Mailer to deliver mails
  end
end

2人の労働者が走っていると仮定するとNotificationWorker、これらが互いに干渉しているかどうかはわかりません。私の理解では、クラスで直接作業するとMail機能が損なわれます。これは、両方のメーラーが割り当てられた設定ではなく同じ設定を使用する結果になるためです。解決策は、そのようなクラスのクローンを作成することです(ActionMailerでは機能しますが、Mail AFAIKでは機能しません)。

Resqueドキュメントによると:

Resqueワーカーは、永久に実行されるレーキタスクです。彼らは基本的にこれを行います:

start
loop do
  if job = reserve
    job.process
  else
    sleep 5 # Polling frequency = 5 
  end
end
shutdown

Railsアプリの基本的な使い方以外にrakeに慣れていません。だから誰かが私を啓発することができますか?

4

1 に答える 1

1

ここで何を達成しようとしているのかよくわかりません。自動化された電子メールをキューに入れて配信するresqueシステムがあります。私はそれをこのように設定しました:

1)env.rb

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {...}

2)notification_job.rb#作成する必要のあるワーカーではなく、そのジョブ。

class NotificationWorker
  def self.perform(id)
    # Working with Mailer to deliver mails
  end
end

本当にメーラーを直接操作する必要があり、各ワーカーに異なる設定が必要な場合は、起動時にワーカーに指定する変数に関連するyamlファイルを作成する必要があります。

于 2012-05-29T10:19:03.763 に答える