Refactor domain expiration email

#186
This commit is contained in:
Artur Beljajev 2016-10-29 00:53:00 +03:00
parent 0cc3a53deb
commit f127716a39
5 changed files with 36 additions and 22 deletions

View file

@ -32,18 +32,27 @@ class DomainCron
end
def self.start_expire_period
STDOUT << "#{Time.zone.now.utc} - Expiring domains\n" unless Rails.env.test?
Rails.logger.info('Expiring domains')
::PaperTrail.whodunnit = "cron - #{__method__}"
domains = Domain.where('valid_to <= ?', Time.zone.now)
domains = Domain.expired
marked = 0
real = 0
domains.each do |domain|
next unless domain.expirable?
real += 1
domain.set_graceful_expired
STDOUT << "#{Time.zone.now.utc} DomainCron.start_expire_period: ##{domain.id} (#{domain.name}) #{domain.changes}\n" unless Rails.env.test?
domain.save(validate: false) and marked += 1
send_time = domain.valid_to + Setting.expiration_reminder_mail.to_i.days
saved = domain.save(validate: false)
if saved
DomainExpirationEmailJob.enqueue(domain_id: domain.id, run_at: send_time)
marked += 1
end
end
STDOUT << "#{Time.zone.now.utc} - Successfully expired #{marked} of #{real} domains\n" unless Rails.env.test?