@@ -62,7 +62,7 @@ def shutdown
6262
6363 private
6464
65- def sync_triggered? ( connector_settings )
65+ def sync_triggered? ( connector_settings , time_at_poll_start = Time . now )
6666 unless connector_settings . valid_index_name?
6767 Utility ::Logger . warn ( "The index name of #{ connector_settings . formatted } is invalid." )
6868 return false
@@ -80,7 +80,7 @@ def sync_triggered?(connector_settings)
8080 return true
8181 end
8282
83- schedule_triggered? ( connector_settings . full_sync_scheduling , connector_settings . formatted )
83+ schedule_triggered? ( connector_settings . full_sync_scheduling , connector_settings . formatted , time_at_poll_start )
8484 end
8585
8686 def heartbeat_triggered? ( connector_settings )
@@ -149,7 +149,7 @@ def connector_registered?(service_type)
149149 end
150150 end
151151
152- def schedule_triggered? ( scheduling_settings , identifier )
152+ def schedule_triggered? ( scheduling_settings , identifier , time_at_poll_start = Time . now )
153153 # Don't sync if sync is explicitly disabled
154154 unless scheduling_settings . present? && scheduling_settings [ :enabled ] == true
155155 Utility ::Logger . debug ( "#{ identifier . capitalize } scheduling is disabled." )
@@ -179,12 +179,15 @@ def schedule_triggered?(scheduling_settings, identifier)
179179 return false
180180 end
181181
182- next_trigger_time = cron_parser . next_time ( Time . now )
183-
182+ next_trigger_time = cron_parser . next_time ( time_at_poll_start )
184183 # Sync if next trigger happens before the next poll
185- if next_trigger_time <= Time . now + @poll_interval
184+ poll_window = time_at_poll_start + @poll_interval
185+ if next_trigger_time <= poll_window
186186 Utility ::Logger . info ( "#{ identifier . capitalize } sync is triggered by cron schedule #{ current_schedule } ." )
187187 return true
188+ else
189+ # log that a sync was not triggered, share the next trigger time and when poll interval was meant to end
190+ Utility ::Logger . debug ( "Sync for #{ identifier . capitalize } not triggered, as #{ next_trigger_time } occurs after the current interval: #{ poll_window } ." )
188191 end
189192
190193 false
0 commit comments