Class: SeoCloudflareSyncWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Job, Sidekiq::Status::Worker
Defined in:
app/workers/seo_cloudflare_sync_worker.rb

Overview

Syncs per-page edge request counts from Cloudflare analytics.

Cloudflare counts every request at the edge — bots, cache hits, and clients
with JavaScript disabled — so this is a ground-truth traffic measure that
complements the JS-dependent visit counts from SeoVisitsSyncWorker.

Writes cloudflare_requests data points to site_map_data_points.

Scheduled nightly at 2:40 AM CT via sidekiq_production_schedule.yml.

Instance Method Summary collapse

Instance Method Details

#perform(options = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/workers/seo_cloudflare_sync_worker.rb', line 19

def perform(options = {})
  total 2

  at 1, 'Syncing Cloudflare edge request counts...'
  opts = options.symbolize_keys.slice(:start_date, :end_date)
  result = Seo::CloudflareSyncService.new(opts).process

  at 2, 'Complete'
  store info_message: "Cloudflare: #{result[:pages_updated]} pages updated"
  store pages_updated: result[:pages_updated]
  store errors: result[:errors]

  Rails.logger.info "[SeoCloudflareSyncWorker] Completed: #{result[:pages_updated]} pages"
rescue StandardError => e
  Rails.logger.error "[SeoCloudflareSyncWorker] Failed: #{e.message}"
  store info_message: "Cloudflare sync failed: #{e.message}"
  raise
end