From 4308914fe8911ba5a871c281c77c8e6a3d3a3c6a Mon Sep 17 00:00:00 2001 From: Molly Struve Date: Sat, 22 Aug 2020 08:26:30 -0500 Subject: [PATCH] [deploy] Refactor:Move send_email_digest Rake Task to Sidekiq (#9929) --- app/workers/send_email_digest_worker.rb | 9 +++++++++ config/schedule.yml | 3 +++ lib/tasks/fetch.rake | 6 ------ spec/workers/send_email_digest_worker_spec.rb | 15 +++++++++++++++ 4 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 app/workers/send_email_digest_worker.rb create mode 100644 spec/workers/send_email_digest_worker_spec.rb diff --git a/app/workers/send_email_digest_worker.rb b/app/workers/send_email_digest_worker.rb new file mode 100644 index 000000000..ba7413499 --- /dev/null +++ b/app/workers/send_email_digest_worker.rb @@ -0,0 +1,9 @@ +class SendEmailDigestWorker + include Sidekiq::Worker + + sidekiq_options queue: :medium_priority, retry: 15 + + def perform + EmailDigest.send_periodic_digest_email + end +end diff --git a/config/schedule.yml b/config/schedule.yml index 8690845f3..86b9cf09a 100644 --- a/config/schedule.yml +++ b/config/schedule.yml @@ -71,3 +71,6 @@ expire_old_listings: send_welcome_notifications: cron: "0 16 * * *" # daily at 4 pm UTC class: "Broadcasts::SendWelcomeNotificationsWorker" +send_email_digest: + cron: "30 11 * * 3,4,5,6" # 11:30 am UTC Wed, Thurs, Fri, Sat, Sun + class: "SendEmailDigestWorker" diff --git a/lib/tasks/fetch.rake b/lib/tasks/fetch.rake index a09301c8a..7582cc1ee 100644 --- a/lib/tasks/fetch.rake +++ b/lib/tasks/fetch.rake @@ -20,12 +20,6 @@ task github_repo_fetch_all: :environment do GithubRepo.update_to_latest end -task send_email_digest: :environment do - if Time.current.wday >= 3 - EmailDigest.send_periodic_digest_email - end -end - task remove_old_html_variant_data: :environment do HtmlVariantTrial.destroy_by("created_at < ?", 2.weeks.ago) HtmlVariantSuccess.destroy_by("created_at < ?", 2.weeks.ago) diff --git a/spec/workers/send_email_digest_worker_spec.rb b/spec/workers/send_email_digest_worker_spec.rb new file mode 100644 index 000000000..df1ad77f5 --- /dev/null +++ b/spec/workers/send_email_digest_worker_spec.rb @@ -0,0 +1,15 @@ +require "rails_helper" + +RSpec.describe SendEmailDigestWorker, type: :worker do + let(:worker) { subject } + + include_examples "#enqueues_on_correct_queue", "medium_priority" + + describe "#perform" do + it "sends periodic digest email" do + allow(EmailDigest).to receive(:send_periodic_digest_email) + worker.perform + expect(EmailDigest).to have_received(:send_periodic_digest_email) + end + end +end