File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 99 "os"
1010 "strconv"
1111 "sync"
12+ "time"
1213
1314 "github.com/jackc/pgx/v5/pgxpool"
1415)
2021
2122func main () {
2223 var err error
23- pool , err = newPool (context .Background ())
24+ // Retry connection for up to 30s to handle Docker compose startup ordering
25+ for i := 0 ; i < 30 ; i ++ {
26+ pool , err = newPool (context .Background ())
27+ if err == nil {
28+ break
29+ }
30+ log .Printf ("waiting for database (%d/30): %v" , i + 1 , err )
31+ time .Sleep (time .Second )
32+ }
2433 if err != nil {
25- log .Fatalf ("failed to create pool (check DATABASE_URL and ensure Postgres is reachable) : %v" , err )
34+ log .Fatalf ("failed to create pool after 30s : %v" , err )
2635 }
2736 defer pool .Close ()
2837
@@ -40,7 +49,7 @@ func main() {
4049 }
4150 log .Printf ("listening on :%s" , port )
4251 if err := http .ListenAndServe (":" + port , nil ); err != nil {
43- log .Fatalf ("server failed (check if port %s is already in use) : %v" , port , err )
52+ log .Fatalf ("server failed: %v" , port , err )
4453 }
4554}
4655
You can’t perform that action at this time.
0 commit comments