我正在使用ActionMailer通过Postmark向用户发送邮件。这是我的控制器代码:
@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。