diff --git a/app/services/tournament_sync_processor.rb b/app/services/tournament_sync_processor.rb index 515b07b..605f952 100644 --- a/app/services/tournament_sync_processor.rb +++ b/app/services/tournament_sync_processor.rb @@ -6,6 +6,8 @@ class TournamentSyncProcessor end def process_due! + return unless queue_table_available? + loop do entry = next_entry break if entry.nil? @@ -30,4 +32,10 @@ class TournamentSyncProcessor rescue TournamentSyncPusher::SyncFailed => e entry.reload.schedule_retry!(e.message) end + + def queue_table_available? + TournamentSyncQueueEntry.connection.data_source_exists?(TournamentSyncQueueEntry.table_name) + rescue ActiveRecord::ActiveRecordError, PG::Error + false + end end diff --git a/spec/e2e/http/tournament_follow_sync_spec.rb b/spec/e2e/http/tournament_follow_sync_spec.rb index fa44fdb..74ff3a3 100644 --- a/spec/e2e/http/tournament_follow_sync_spec.rb +++ b/spec/e2e/http/tournament_follow_sync_spec.rb @@ -199,7 +199,7 @@ RSpec.describe 'Tournament follower sync HTTP E2E' do .uniq { |team| team.fetch(:id) } .sort_by { |team| team.fetch(:name) } .each_with_index - .to_h { |(team, index)| [index + 1, team] } + .to_h { |team, index| [index + 1, team] } end def play_group_match!(group, team_a, team_b, score_a, score_b)