From ee2556da75e1f19c996c6f00d467b1fe0c707f17 Mon Sep 17 00:00:00 2001 From: Yoshida Hiroshi Date: Tue, 13 Feb 2024 17:07:49 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AA=E3=83=88=E3=83=A9=E3=82=A4=E3=81=8C?= =?UTF-8?q?=E7=84=A1=E5=8A=B9=E3=81=AB=E8=A8=AD=E5=AE=9A=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=82=8B=E5=A0=B4=E5=90=88=E3=81=AF=E5=86=8D?= =?UTF-8?q?=E6=8E=A5=E7=B6=9A=E3=81=AE=E6=9D=A1=E4=BB=B6=E3=81=AB=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E3=81=97=E3=81=A6=E3=82=82=E3=82=AF=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=82=A2=E3=83=B3=E3=83=88=E3=81=AB=E3=82=A8=E3=83=A9=E3=83=BC?= =?UTF-8?q?=E3=82=92=E9=80=81=E4=BF=A1=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- amazon_transcribe_handler.go | 11 +++++++++++ speech_to_text_handler.go | 14 +++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/amazon_transcribe_handler.go b/amazon_transcribe_handler.go index ac6d9a2..6803f78 100644 --- a/amazon_transcribe_handler.go +++ b/amazon_transcribe_handler.go @@ -161,6 +161,17 @@ func (h *AmazonTranscribeHandler) Handle(ctx context.Context, reader io.Reader) Str("connection_id", h.ConnectionID). Send() + // リトライしない設定の場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する + if !*at.Config.Retry { + if err := encoder.Encode(NewSuzuErrorResponse(err)); err != nil { + zlog.Error(). + Err(err). + Str("channel_id", h.ChannelID). + Str("connection_id", h.ConnectionID). + Send() + } + } + err = ErrServerDisconnected default: // 再接続を想定している以外のエラーの場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する diff --git a/speech_to_text_handler.go b/speech_to_text_handler.go index e66bc9f..ce15e89 100644 --- a/speech_to_text_handler.go +++ b/speech_to_text_handler.go @@ -132,12 +132,24 @@ func (h *SpeechToTextHandler) Handle(ctx context.Context, reader io.Reader) (*io code == codes.InvalidArgument || code == codes.ResourceExhausted { + err := fmt.Errorf(status.GetMessage()) zlog.Error(). Err(err). Str("channel_id", h.ChannelID). Str("connection_id", h.ConnectionID). Int32("code", status.GetCode()). - Msg(status.GetMessage()) + Send() + + // リトライしない設定の場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する + if !*stt.Config.Retry { + if err := encoder.Encode(NewSuzuErrorResponse(err)); err != nil { + zlog.Error(). + Err(err). + Str("channel_id", h.ChannelID). + Str("connection_id", h.ConnectionID). + Send() + } + } w.CloseWithError(ErrServerDisconnected) return