Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

要望: DB接続時のエラーを握り潰さずログに表示してほしいです #628

Open
vroad opened this issue Dec 1, 2022 · 1 comment

Comments

@vroad
Copy link

vroad commented Dec 1, 2022

NixOSでEPGStationを設定しようとしていますが、EPGStationがmysqlに接続出来ず起動できていません。
エラー内容を確認しようとしたところ以下でエラーを握り潰していて内容を確認できませんでした。

/**
* DB との接続を待つ
*/
public async checkDB(): Promise<void> {
while (true) {
try {
this.log.system.info('check db');
await this.dbOperator.checkConnection();
break;
} catch (err: any) {
await Util.sleep(1000);
}
}
}

他にやりようはあるのでは?と思います。例えば
・永久にリトライしない。一定の回数試したら最後のエラーを表示して終了する。
・接続情報の誤りなどリトライしても意味無いものはリトライしない。
・接続失敗のたびにエラーを表示するが、リトライ間隔は長めにしてログがエラーで埋め尽くされないようにする。または、Exponential Backoffでリトライ間隔をだんだん長くする。

NixOSのようなLinuxディストリビューションなら、EPGStationに不具合が起きて終了したら、systemdに再起動させれば良いので
永久にリトライし続ける実装にするメリットは特にないです。
他OSでも通常は何らかの手段で自動的に再起動するようにするのではないでしょうか。

ログメッセージもcheck dbだと何してるのか分からないのです。こんな感じでどうでしょう。

  1. 最初に: Connecting to DB
  2. 失敗後、待機する前: Unable to Connect to DB (エラー内容), retrying in 10 seconds
  3. Error connecting to DB: maximum number of retries (6) exceeded
@l3tnun
Copy link
Owner

l3tnun commented Jul 29, 2023

現時点で開発のリソースの余裕がないので、直近で対応する予定はありません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants