Files
MatchLiveTv/backend/app/jobs/youtube_broadcast_activate_job.rb
Emiliano Frascaro 10fff7ffcb Fix YouTube in attesa: disabilita auto_stop e ricrea broadcast chiusa
YouTube chiudeva la diretta (complete) senza ingest stabile; ora
enable_auto_stop è false e SetupBroadcast.recreate! rigenera link/stream key.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 09:33:07 +02:00

33 lines
1.0 KiB
Ruby

class YoutubeBroadcastActivateJob < ApplicationJob
queue_as :default
MAX_ATTEMPTS = 36
RETRY_WAIT = 10.seconds
class << self
def schedule_with_retries(session_id, attempt: 1)
set(wait: attempt == 1 ? 8.seconds : RETRY_WAIT).perform_later(session_id, attempt)
end
end
def perform(session_id, attempt = 1)
session = StreamSession.find_by(id: session_id)
return unless session&.platform == "youtube"
return if session.terminal?
return if session.youtube_broadcast_id.blank?
return unless Streams::YoutubeRelay.running?(session.id)
result = Youtube::BroadcastService.new(session.match.team).activate_broadcast!(session.youtube_broadcast_id)
return if result == :live || result == :transitioned
if result == :broadcast_ended
Youtube::SetupBroadcast.recreate!(session.reload)
return
end
return unless result == :waiting_ingest
return if attempt >= MAX_ATTEMPTS
self.class.schedule_with_retries(session_id, attempt: attempt + 1)
end
end