pdfshop/app/jobs/send_newsletter_job.rb

26 lines
700 B
Ruby

# setts all products to check or not their quantity
class SendNewsletterJob < ApplicationJob
queue_as :default
def perform
loop do
emails = Email.where('sended = 0')
break if emails.count.zero?
begin
emails.each do |em|
NewsletterMailer.news_mail(em.email).deliver
em.sended = true
em.save
sleep(6)
end
rescue Net::SMTPUnknownError => e
# Net::SMTPUnknownError (could not get 3xx (550: 550 5.4.5
# Daily user sending quota exceeded. p3sm37406639wrx.71 - gsmtp
Rails.logger.error e.message
Rails.logger.error e.backtrace.join("\n")
sleep(3600)
end
end
end
end