Я отправляю почту пользователям с помощью 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