diff --git a/amazon_transcribe_handler.go b/amazon_transcribe_handler.go index aa9bd79..db1d67a 100644 --- a/amazon_transcribe_handler.go +++ b/amazon_transcribe_handler.go @@ -163,7 +163,7 @@ func (h *AmazonTranscribeHandler) Handle(ctx context.Context, reader io.Reader) Send() // リトライしない設定の場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する - if *at.Config.MaxRetry < 1 { + if at.Config.MaxRetry < 1 { if err := encoder.Encode(NewSuzuErrorResponse(err)); err != nil { zlog.Error(). Err(err). diff --git a/config.go b/config.go index da725df..cd06cac 100644 --- a/config.go +++ b/config.go @@ -27,9 +27,6 @@ const ( // 100ms DefaultTimeToWaitForOpusPacketMs = 100 - - // リトライ無し - DefaultMaxRetry = 0 ) type Config struct { @@ -49,7 +46,7 @@ type Config struct { HTTP2MaxReadFrameSize uint32 `ini:"http2_max_read_frame_size"` HTTP2IdleTimeout uint32 `ini:"http2_idle_timeout"` - MaxRetry *int `ini:"max_retry"` + MaxRetry int `ini:"max_retry"` ExporterHTTPS bool `ini:"exporter_https"` ExporterListenAddr string `ini:"exporter_listen_addr"` @@ -162,13 +159,8 @@ func setDefaultsConfig(config *Config) { if config.TimeToWaitForOpusPacketMs == 0 { config.TimeToWaitForOpusPacketMs = DefaultTimeToWaitForOpusPacketMs } - - // 未指定の場合のリトライ回数は 0 - if config.MaxRetry == nil { - maxRetry := DefaultMaxRetry - config.MaxRetry = &maxRetry - } } + func validateConfig(config *Config) error { var err error // アドレスとして正しいことを確認する @@ -216,5 +208,5 @@ func ShowConfig(config *Config) { zlog.Info().Str("exporter_listen_addr", config.ExporterListenAddr).Msg("CONF") zlog.Info().Int("exporter_listen_port", config.ExporterListenPort).Msg("CONF") - zlog.Info().Int("max_retry", *config.MaxRetry).Msg("CONF") + zlog.Info().Int("max_retry", config.MaxRetry).Msg("CONF") } diff --git a/handler.go b/handler.go index 532de55..6ef58c3 100644 --- a/handler.go +++ b/handler.go @@ -144,7 +144,7 @@ func (s *Server) createSpeechHandler(serviceType string, onResultFunc func(conte Send() if err, ok := err.(*SuzuError); ok { if err.IsRetry() { - if *s.config.MaxRetry > retryCount { + if s.config.MaxRetry > retryCount { retryCount += 1 zlog.Debug(). @@ -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.MaxRetry > retryCount { + if s.config.MaxRetry > retryCount { // サーバから切断されたが再度接続できる可能性があるため、接続を試みる retryCount += 1 diff --git a/speech_to_text_handler.go b/speech_to_text_handler.go index 8aec81a..5037a01 100644 --- a/speech_to_text_handler.go +++ b/speech_to_text_handler.go @@ -142,7 +142,7 @@ func (h *SpeechToTextHandler) Handle(ctx context.Context, reader io.Reader) (*io Send() // リトライしない設定の場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する - if *stt.Config.MaxRetry < 1 { + if stt.Config.MaxRetry < 1 { if err := encoder.Encode(NewSuzuErrorResponse(err)); err != nil { zlog.Error(). Err(err).