Closed ragi256 closed 4 years ago
execute_update 内部で PQconsumeInput() SSL SYSCALL error: Connection timed out が起きた際、ジョブ全体をリトライすると直ることが大半でした。 ~@connection.async_exec(query)するメソッドにリトライ処理を追加します。~ 最初にコネクションを張る際に select 1 で疎通を確認し、失敗したら自動でコネクション作成をリトライするようにします。
execute_update
PQconsumeInput() SSL SYSCALL error: Connection timed out
@connection.async_exec(query)
select 1
デフォルトは3回リトライし、環境変数で変更できるようなっています。
リトライ処理の実装方法は下記のコードを参考にしました。https://github.com/bricolages/bricolage/blob/7422e6c7e9ad81cd23becb56f249741fdf644689/lib/bricolage/s3datasource.rb#L127-L141
間違った内容のcommitなどで修正内容の割にcommitが長引いたのでsquashして一つにまとめました
execute_update
内部でPQconsumeInput() SSL SYSCALL error: Connection timed out
が起きた際、ジョブ全体をリトライすると直ることが大半でした。 ~@connection.async_exec(query)
するメソッドにリトライ処理を追加します。~ 最初にコネクションを張る際にselect 1
で疎通を確認し、失敗したら自動でコネクション作成をリトライするようにします。デフォルトは3回リトライし、環境変数で変更できるようなっています。
リトライ処理の実装方法は下記のコードを参考にしました。https://github.com/bricolages/bricolage/blob/7422e6c7e9ad81cd23becb56f249741fdf644689/lib/bricolage/s3datasource.rb#L127-L141