Skip to content

Commit

Permalink
max_retry 回数までリトライするように変更する
Browse files Browse the repository at this point in the history
  • Loading branch information
Hexa committed Mar 4, 2024
1 parent a42c993 commit bc8fd19
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 5 deletions.
2 changes: 1 addition & 1 deletion amazon_transcribe_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ func (h *AmazonTranscribeHandler) Handle(ctx context.Context, reader io.Reader)
Send()

// リトライしない設定の場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する
if !*at.Config.Retry {
if *at.Config.MaxRetry < 1 {
if err := encoder.Encode(NewSuzuErrorResponse(err)); err != nil {
zlog.Error().
Err(err).
Expand Down
9 changes: 6 additions & 3 deletions handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,8 @@ func (s *Server) createSpeechHandler(serviceType string, onResultFunc func(conte
Str("connection_id", h.SoraConnectionID).
Send()
if err, ok := err.(*SuzuError); ok {
if *s.config.Retry {
if err.IsRetry() {
if err.IsRetry() {
if *s.config.MaxRetry > retryCount {
retryCount += 1

zlog.Debug().
Expand Down Expand Up @@ -184,7 +184,7 @@ func (s *Server) createSpeechHandler(serviceType string, onResultFunc func(conte
Send()
return err
} else if errors.Is(err, ErrServerDisconnected) {
if *s.config.Retry {
if *s.config.MaxRetry > retryCount {
// サーバから切断されたが再度接続できる可能性があるため、接続を試みる
retryCount += 1

Expand Down Expand Up @@ -215,6 +215,9 @@ func (s *Server) createSpeechHandler(serviceType string, onResultFunc func(conte
return err
}

// 1 度でも接続結果を受け取れた場合はリトライ回数をリセットする
retryCount = 0

// メッセージが空でない場合はクライアントに結果を送信する
if n > 0 {
if _, err := c.Response().Write(buf[:n]); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion speech_to_text_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ func (h *SpeechToTextHandler) Handle(ctx context.Context, reader io.Reader) (*io
Send()

// リトライしない設定の場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する
if !*stt.Config.Retry {
if *stt.Config.MaxRetry < 1 {
if err := encoder.Encode(NewSuzuErrorResponse(err)); err != nil {
zlog.Error().
Err(err).
Expand Down

0 comments on commit bc8fd19

Please sign in to comment.