お知らせメールを配信したい。

Threadでやる

member = Member.find(:all)
threads = []

cnt = 0
threads << Thread.new{
	member.each do |m|
		email   = i.email
		subject = replace( params[:mail][:subject], i )
		body    = replace( params[:mail][:body], i )
		Mailer.deliver_bulletin(email, subject, body) if i.reception.to_i == 1
		cnt =+ 1
	end 
end
threads.each { |t| t.join }

みたいにやると、ブラウザ閉じてもちゃんと全件飛ぶけど、終わるまで全員待たされる。

BackgrounDRbというやつがある。

はまったとこ

workerには一個しか引数渡せない。
workerには worker.async_post(:arg => args)の形で渡さないといけない[:arg]が決まりごと。。。