【发布时间】:2012-01-04 01:03:39
【问题描述】:
我正在通过邮戳使用 actionmailer 向用户发送邮件。这是我在控制器中的代码:
@users = User.where(some condition)
@product = Product.find_by_name(some name).first
for user in @users
UserMailer.new_product_arrival(user, @product, home_url).deliver
end
这是我的 user_mailer.rb
def new_product_arrival(user,product,home_url)
@from = Settings.mailer_from_address
@recipients = user.login
@sent_on = Time.now
@user = user
@product = product
@content_type = "text/html"
@home_url = home_url
end
问题是,如果有超过 10 个用户,由于for 循环,这需要很长时间。我需要知道我们是否可以通过使用多线程或后台作业来处理这个问题。我不想使用后台作业,但谁能告诉我如何使用多线程实现上述操作。
我正在使用 ruby 1.8.7 和 rails 3.0.7
【问题讨论】:
-
我还不是 ruby 专家(目前),但邮戳确实支持发送批量电子邮件,所以如果您要向一大群用户发送电子邮件,那么使用它可能更容易而不是每个人的 api 调用。
标签: multithreading ruby-on-rails-3 actionmailer postmark