class EmailCron @queue = :mail def self.perform @datas = MailCron.where(:mail_sentdate.lte => Time.now) @datas.each do |mail_data| @mail_j = 0 @read_mails = Array.new @mails = mail_data.mail_to.split(",") @mails.each do |send_mail| @read_mails << send_mail @mail_j += 1 if 0 == @mail_j % 30 MailCronMailer.cron_mail( mail_data.id, @read_mails.join(',') ).deliver @read_mails = Array.new sleep 10 end end if !@read_mails.join(',').blank? MailCronMailer.cron_mail( mail_data.id, @read_mails.join(',') ).deliver @read_mails = Array.new sleep 10 end end end end