48 lines
1.1 KiB
Ruby
48 lines
1.1 KiB
Ruby
module JamRuby
|
|
class DailyJob
|
|
extend Resque::Plugins::JamLonelyJob
|
|
|
|
@queue = :scheduled_daily_job
|
|
@@log = Logging.logger[DailyJob]
|
|
|
|
def self.perform
|
|
@@log.debug("waking up")
|
|
|
|
bounced_emails
|
|
|
|
calendar_manager = CalendarManager.new
|
|
calendar_manager.cleanup()
|
|
|
|
@@log.debug("done")
|
|
end
|
|
|
|
def self.bounced_emails
|
|
if Rails.application.config.check_bounced_emails
|
|
start = GenericState.bounce_check_at
|
|
|
|
if start.nil?
|
|
start = (Date.today - 1).to_s
|
|
end
|
|
|
|
end_date = Date.today.to_s
|
|
|
|
@@log.info("checking bounced emails from #{start} to #{end_date}")
|
|
|
|
bounces = SendgridToolkit::Bounces.new
|
|
result = bounces.retrieve({start_date: start, end_date: end_date})
|
|
|
|
result.each do |item|
|
|
user = User.find_by_email(item["email"])
|
|
if user
|
|
User.where(id: user.id).update_all(subscribe_email: false, bounced: true)
|
|
end
|
|
end
|
|
|
|
singleton = GenericState.singleton
|
|
singleton.bounce_check_at = end_date
|
|
singleton.save!
|
|
end
|
|
end
|
|
end
|
|
end
|