* crash dum
This commit is contained in:
parent
4d41e2278d
commit
c5b8465012
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Reference in New Issue