42 lines
727 B
Ruby
42 lines
727 B
Ruby
|
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
|