Risolve timeout creazione sessione YouTube lato app.
La setup broadcast YouTube (~23s) passa in background job; l'API risponde subito. Aumentato anche il timeout Dio mobile per createSession YouTube. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -27,10 +27,10 @@ module Sessions
|
||||
status: "idle"
|
||||
)
|
||||
|
||||
youtube_channel = nil
|
||||
if session.platform == "youtube"
|
||||
youtube_channel = @params[:youtube_channel].presence
|
||||
assert_youtube_channel!(youtube_channel)
|
||||
attach_youtube_broadcast!(session, youtube_channel: youtube_channel)
|
||||
end
|
||||
|
||||
StreamSession.transaction do
|
||||
@@ -40,10 +40,13 @@ module Sessions
|
||||
mtx.create_path(session)
|
||||
mtx.create_overlay_path(session)
|
||||
start_overlay_relay(session)
|
||||
start_youtube_relay(session)
|
||||
log_event(session, "pairing", { created: true, platform: session.platform })
|
||||
end
|
||||
|
||||
if session.platform == "youtube"
|
||||
YoutubeBroadcastSetupJob.perform_later(session.id, youtube_channel)
|
||||
end
|
||||
|
||||
session
|
||||
end
|
||||
|
||||
@@ -60,18 +63,7 @@ module Sessions
|
||||
end
|
||||
|
||||
def attach_youtube_broadcast!(session, youtube_channel: nil)
|
||||
yt = Youtube::BroadcastService.new(session.match.team, youtube_channel: youtube_channel)
|
||||
title = "#{session.match.team.name} vs #{session.match.opponent_name}"
|
||||
broadcast = yt.create_broadcast!(
|
||||
title: title,
|
||||
privacy_status: session.privacy_status,
|
||||
scheduled_at: session.match.scheduled_at
|
||||
)
|
||||
|
||||
session.youtube_broadcast_id = broadcast[:broadcast_id]
|
||||
session.youtube_stream_id = broadcast[:stream_id]
|
||||
session.stream_key = broadcast[:stream_key]
|
||||
session.rtmp_url = broadcast[:rtmp_url]
|
||||
Youtube::SetupBroadcast.call(session, youtube_channel: youtube_channel)
|
||||
end
|
||||
|
||||
def start_overlay_relay(session)
|
||||
@@ -80,14 +72,6 @@ module Sessions
|
||||
Rails.logger.warn("[Sessions::Create] Overlay relay: #{e.message}")
|
||||
end
|
||||
|
||||
def start_youtube_relay(session)
|
||||
return unless session.platform == "youtube"
|
||||
|
||||
Streams::YoutubeRelay.start(session)
|
||||
rescue Streams::YoutubeRelay::Error => e
|
||||
Rails.logger.warn("[Sessions::Create] YouTube relay: #{e.message}")
|
||||
end
|
||||
|
||||
def log_event(session, type, metadata)
|
||||
session.stream_events.create!(event_type: type, metadata: metadata, occurred_at: Time.current)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user