* crash dum

This commit is contained in:
Seth Call 2016-01-04 14:44:45 -06:00
parent 4d41e2278d
commit c5b8465012
8 changed files with 63 additions and 1 deletions

View File

@ -319,4 +319,5 @@ session_controller.sql
jam_tracks_bpm.sql
jam_track_sessions.sql
jam_track_sessions_v2.sql
email_screening.sql
email_screening.sql
bounced_email_cleanup.sql

View File

@ -0,0 +1,3 @@
ALTER TABLE generic_state ADD COLUMN bounce_check_at TIMESTAMP;
UPDATE generic_state SET bounce_check_at = NOW();
ALTER TABLE users ADD COLUMN bounced BOOLEAN DEFAULT FALSE;

View File

@ -51,6 +51,7 @@ gem 'rubyzip'
gem 'sanitize'
gem 'influxdb', '0.1.8'
gem 'recurly'
gem 'sendgrid_toolkit', '>= 1.1.1'
group :test do
gem 'simplecov', '~> 0.7.1'

View File

@ -27,6 +27,10 @@ module JamRuby
GenericState.singleton.affiliate_tallied_at
end
def self.bounce_check_at
GenericState.singleton.bounce_check_at
end
def self.singleton
GenericState.find('default')
end

View File

@ -0,0 +1,48 @@
require 'json'
require 'resque'
require 'resque-retry'
require 'net/http'
require 'digest/md5'
module JamRuby
# periodically scheduled to find jobs that need retrying, and cleanup activities
class BouncedEmails
extend Resque::Plugins::JamLonelyJob
@queue = :bounced_emails
@@log = Logging.logger[BouncedEmails]
def self.lock_timeout
# this should be enough time to make sure the job has finished, but not so long that the system isn't recovering from a abandoned job
120
end
def self.perform
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
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
end
end
end
end

View File

@ -94,6 +94,7 @@ gem 'influxdb-rails', '0.1.10'
gem 'sitemap_generator'
gem 'bower-rails', "~> 0.9.2"
gem 'react-rails', '~> 1.0'
gem 'sendgrid_toolkit', '>= 1.1.1'
#gem "browserify-rails", "~> 0.7"
source 'https://rails-assets.org' do

View File

@ -410,5 +410,6 @@ if defined?(Bundler)
config.midi_enabled = true
config.verify_email_enabled = false
config.kickbox_api_key = 'e262991e292dd5fe382c4a69f2b359f718cf267712b8684c9c28d6402ec18965'
config.check_bounced_emails = false
end
end

View File

@ -16,3 +16,6 @@ ActionMailer::Base.smtp_settings = {
}
Rails.logger.debug("ActionMailer.delivery_method = #{ActionMailer::Base.delivery_method}")
SendgridToolkit.api_user = Rails.application.config.email_smtp_user_name
SendgridToolkit.api_key = Rails.application.config.email_smtp_password