Class: Kidsmin::PcoScheduledSyncJob

Inherits:
ApplicationJob show all
Defined in:
app/jobs/kidsmin/pco_scheduled_sync_job.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.kick_off_if_enabled!Object



21
22
23
24
25
26
27
28
29
# File 'app/jobs/kidsmin/pco_scheduled_sync_job.rb', line 21

def self.kick_off_if_enabled!
  settings = SyncSetting.current
  return unless settings.auto_sync_enabled?

  set(wait: settings.sync_frequency_hours.hours).perform_later
  Rails.logger.info("[Kidsmin] Auto-sync scheduled every #{settings.sync_frequency_hours}h")
rescue => e
  Rails.logger.warn("[Kidsmin] Could not schedule auto-sync: #{e.message}")
end

Instance Method Details

#performObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/jobs/kidsmin/pco_scheduled_sync_job.rb', line 5

def perform
  settings = SyncSetting.current
  return unless settings.auto_sync_enabled?

  Rails.logger.info("[Kidsmin] PcoScheduledSyncJob: running automatic sync")

  PcoInboundPeopleSyncJob.perform_now if settings.inbound_people_sync?
  PcoInboundEventsSyncJob.perform_now  if settings.inbound_events_sync?

  reschedule(settings.sync_frequency_hours)
rescue => e
  Rails.logger.error("[Kidsmin] PcoScheduledSyncJob error: #{e.message}")
  reschedule(settings&.sync_frequency_hours || 6)
  raise
end