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

假设可能有两个工人在运行NotificationWorker,我不确定它们是否会相互干扰。据我了解,直接在Mail课堂上工作会破坏功能,因为这将导致两个邮件程序使用相同的设置而不是分配给他们的设置。一个解决方案是创建这样一个类的克隆(它适用于 ActionMailer,但不适用于 Mail AFAIK)。

根据 Resque 文档:

Resque 工作者是永远运行的 rake 任务。他们基本上是这样做的:

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) 环境.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 回答