[deploy] Feature:Add Ability to Run RssReader via Sidekiq Cron, Prevent for DEV (#10066)
This commit is contained in:
parent
7891db594f
commit
4ab5bf5255
3 changed files with 35 additions and 0 deletions
17
app/workers/articles/rss_reader_worker.rb
Normal file
17
app/workers/articles/rss_reader_worker.rb
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
module Articles
|
||||
class RssReaderWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options queue: :medium_priority, retry: 10
|
||||
|
||||
def perform
|
||||
# Temporary
|
||||
# @sre:mstruve This is temporary until we have an efficient way to handle this job
|
||||
# for our large DEV community. Smaller Forems should be able to handle it no problem
|
||||
return if SiteConfig.community_name == "DEV"
|
||||
|
||||
# don't force fetch. Fetch "random" subset instead of all of them.
|
||||
RssReader.get_all_articles(force: false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
fetch_all_rss:
|
||||
cron: "20 * * * *" # every hour, 20 min after the hour
|
||||
class: "Articles::RssReaderWorker"
|
||||
log_worker_queue_stats:
|
||||
cron: "*/10 * * * *" # every 10 minutes
|
||||
class: "Metrics::RecordBackgroundQueueStatsWorker"
|
||||
|
|
|
|||
15
spec/workers/articles/rss_reader_worker_spec.rb
Normal file
15
spec/workers/articles/rss_reader_worker_spec.rb
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
require "rails_helper"
|
||||
|
||||
RSpec.describe Articles::RssReaderWorker, type: :worker do
|
||||
let(:worker) { subject }
|
||||
|
||||
include_examples "#enqueues_on_correct_queue", "medium_priority"
|
||||
|
||||
describe "#perform" do
|
||||
it "updates RssReader articles" do
|
||||
allow(RssReader).to receive(:get_all_articles)
|
||||
worker.perform
|
||||
expect(RssReader).to have_received(:get_all_articles).with(force: false)
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Reference in a new issue