From 9ee8b0605c51d16b0fc9dc6f415e989786a5a280 Mon Sep 17 00:00:00 2001 From: wimo7083 Date: Mon, 3 Sep 2018 16:11:44 -0600 Subject: [PATCH 1/3] implement max retries --- app/jobs/send_email_to_leaders_job.rb | 5 +---- app/jobs/slack_jobs/inviter_job.rb | 3 ++- app/jobs/slack_jobs/notifier_job.rb | 3 +-- config/initializers/sidekiq.rb | 4 +++- test/jobs/send_email_to_leaders_job_test.rb | 13 ------------- 5 files changed, 7 insertions(+), 21 deletions(-) delete mode 100644 test/jobs/send_email_to_leaders_job_test.rb diff --git a/app/jobs/send_email_to_leaders_job.rb b/app/jobs/send_email_to_leaders_job.rb index df581fa5..a249a2ab 100644 --- a/app/jobs/send_email_to_leaders_job.rb +++ b/app/jobs/send_email_to_leaders_job.rb @@ -2,10 +2,7 @@ class SendEmailToLeadersJob < ActiveJob::Base queue_as :default def perform(user_id) - user = User.find(user_id) + logger.debug "Deprecated pathway, trying to determine what is placing this on queue." - User.community_leaders_nearby(user.latitude, user.longitude, 50).each do |leader| - UserMailer.new_user_in_leader_area(leader, user) - end end end diff --git a/app/jobs/slack_jobs/inviter_job.rb b/app/jobs/slack_jobs/inviter_job.rb index 95a0ab0f..c3e17bad 100644 --- a/app/jobs/slack_jobs/inviter_job.rb +++ b/app/jobs/slack_jobs/inviter_job.rb @@ -2,7 +2,8 @@ class SlackJobs class InviterJob < SlackJobs def perform(email) # Invites user to general channel - slack_client.invite(email: email, channels: ['C03GSNF77']) + logger.debug "Deprecated pathway, trying to determine what is placing this on queue." + end end end diff --git a/app/jobs/slack_jobs/notifier_job.rb b/app/jobs/slack_jobs/notifier_job.rb index 24e0e2c4..d8579c3f 100644 --- a/app/jobs/slack_jobs/notifier_job.rb +++ b/app/jobs/slack_jobs/notifier_job.rb @@ -3,8 +3,7 @@ class SlackNotifierJob < SlackJobs queue_as :default def perform(message, channel: '#general') - res = slack_client.post_message_to channel: channel, with_text: message - Rails.logger.debug("Notified channel: #{res.inspect}") + logger.debug "Deprecated pathway, trying to determine what is placing this on queue." end end end diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 443b0f99..0e1a5a66 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -7,7 +7,9 @@ # Sidekiq.configure_server do |config| ENV['DATABASE_URL'] = ENV['POSTGRES_HOST'].present? ? ENV['POSTGRES_HOST'] : 'operationcode-psql' - + config.server_middleware do |chain| + chain.add Sidekiq::Middleware::Server::RetryJobs, :maxretries => 5 + end Rails.logger = Sidekiq::Logging.logger ActiveRecord::Base.logger = Sidekiq::Logging.logger end diff --git a/test/jobs/send_email_to_leaders_job_test.rb b/test/jobs/send_email_to_leaders_job_test.rb deleted file mode 100644 index 17e6892f..00000000 --- a/test/jobs/send_email_to_leaders_job_test.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'test_helper' - -class SendEmailToLeadersJobTest < ActiveJob::TestCase - test 'send email to leaders if someone signs up within X miles' do - User.any_instance.stubs(:geocode) - user = create(:user, email: 'static@email.com', latitude: 40.7, longitude: -73.8) - leader_user = create(:user, latitude: 40.7001, longitude: -73.8001) - leader_user.tag_list.add(User::LEADER) - leader_user.save - UserMailer.expects(:new_user_in_leader_area).with(leader_user, user) - SendEmailToLeadersJob.perform_now(user.id) - end -end From b671baa2527efec3d8cb4ff8067e658c8d6d0ac9 Mon Sep 17 00:00:00 2001 From: wimo7083 Date: Mon, 3 Sep 2018 16:38:21 -0600 Subject: [PATCH 2/3] fixed linting errors --- app/jobs/send_email_to_leaders_job.rb | 5 ++--- app/jobs/slack_jobs/inviter_job.rb | 5 ++--- app/jobs/slack_jobs/notifier_job.rb | 4 ++-- config/initializers/sidekiq.rb | 4 +++- test/models/user_test.rb | 15 --------------- 5 files changed, 9 insertions(+), 24 deletions(-) diff --git a/app/jobs/send_email_to_leaders_job.rb b/app/jobs/send_email_to_leaders_job.rb index a249a2ab..b7c352e2 100644 --- a/app/jobs/send_email_to_leaders_job.rb +++ b/app/jobs/send_email_to_leaders_job.rb @@ -1,8 +1,7 @@ class SendEmailToLeadersJob < ActiveJob::Base queue_as :default - def perform(user_id) - logger.debug "Deprecated pathway, trying to determine what is placing this on queue." - + def perform(_user_id) + logger.debug 'Deprecated pathway, trying to determine what is placing this on queue.' end end diff --git a/app/jobs/slack_jobs/inviter_job.rb b/app/jobs/slack_jobs/inviter_job.rb index c3e17bad..ba8388b0 100644 --- a/app/jobs/slack_jobs/inviter_job.rb +++ b/app/jobs/slack_jobs/inviter_job.rb @@ -1,9 +1,8 @@ class SlackJobs class InviterJob < SlackJobs - def perform(email) + def perform(_email) # Invites user to general channel - logger.debug "Deprecated pathway, trying to determine what is placing this on queue." - + logger.debug 'Deprecated pathway, trying to determine what is placing this on queue.' end end end diff --git a/app/jobs/slack_jobs/notifier_job.rb b/app/jobs/slack_jobs/notifier_job.rb index d8579c3f..f36e047f 100644 --- a/app/jobs/slack_jobs/notifier_job.rb +++ b/app/jobs/slack_jobs/notifier_job.rb @@ -2,8 +2,8 @@ class SlackJobs class SlackNotifierJob < SlackJobs queue_as :default - def perform(message, channel: '#general') - logger.debug "Deprecated pathway, trying to determine what is placing this on queue." + def perform(_message, *) + logger.debug 'Deprecated pathway, trying to determine what is placing this on queue.' end end end diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 0e1a5a66..93b6c208 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -7,8 +7,10 @@ # Sidekiq.configure_server do |config| ENV['DATABASE_URL'] = ENV['POSTGRES_HOST'].present? ? ENV['POSTGRES_HOST'] : 'operationcode-psql' + # https://stackoverflow.com/questions/28412913/disable-automatic-retry-with-activejob-used-with-sidekiq + # prevent excessive retries from some default status. config.server_middleware do |chain| - chain.add Sidekiq::Middleware::Server::RetryJobs, :maxretries => 5 + chain.add Sidekiq::Middleware::Server::RetryJobs, maxretries: 5 end Rails.logger = Sidekiq::Logging.logger ActiveRecord::Base.logger = Sidekiq::Logging.logger diff --git a/test/models/user_test.rb b/test/models/user_test.rb index e044d631..b97a22e9 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -185,21 +185,6 @@ def user_opts refute '@example.com' =~ User::VALID_EMAIL end - test '.community_leaders_nearby returns leaders within a radius from a lat/long' do - User.any_instance.stubs(:geocode) - tom = create :user, latitude: 1, longitude: 1 - tom.tag_list.add(User::LEADER) - tom.save! - far_away_leader = create :user, latitude: 20, longitude: 20 - far_away_leader.tag_list.add(User::LEADER) - far_away_leader.save! - not_a_leader = create :user, latitude: 1, longitude: 1 - results = User.community_leaders_nearby(1, 1, 10) - assert_includes results, tom - assert_not_includes results, far_away_leader - assert_not_includes results, not_a_leader - end - test '.fetch_social_user_and_redirect_path returns the user and redirect path in an array' do data = { first_name: 'Sterling', last_name: 'Archer', email: 'cyril@kickme.org', zip: '12345', password: 'VoiceMail' } results = User.fetch_social_user_and_redirect_path(data) From 14a206641d2e01513c0fd7290ece1522767b6216 Mon Sep 17 00:00:00 2001 From: wimo7083 Date: Mon, 3 Sep 2018 18:27:25 -0600 Subject: [PATCH 3/3] log on retry failure to sentry --- config/initializers/sidekiq.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 93b6c208..6b952b8a 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -9,6 +9,12 @@ ENV['DATABASE_URL'] = ENV['POSTGRES_HOST'].present? ? ENV['POSTGRES_HOST'] : 'operationcode-psql' # https://stackoverflow.com/questions/28412913/disable-automatic-retry-with-activejob-used-with-sidekiq # prevent excessive retries from some default status. + config.death_handlers << lambda { |job, e| + # thanks rob for the nice message + evt = Raven::Event.new(message: "#{job['class']} #{job['jid']} done run outta tries.") + Raven.send_event(evt) + } + config.server_middleware do |chain| chain.add Sidekiq::Middleware::Server::RetryJobs, maxretries: 5 end