Skip to content

Commit 3abffb6

Browse files
committed
fix: rewrite SFTP connection pool for production resilience
- Add keepalive goroutine (5 min ping) to prevent Hetzner idle timeout - getClient() returns nil on exhausted retries instead of dead client - putClient() health-checks before returning to pool, auto-replaces dead connections - Background fillPool() restores capacity without blocking callers - Partial pool init allowed (no longer fails if 1 of 4 connections fails) - Reader/Writer hold client until file closed (poolReadCloser/poolFileWriter) - Pool.Alive() exposes current healthy connection count - Pool.Close() for graceful shutdown
1 parent fcc9d95 commit 3abffb6

1 file changed

Lines changed: 915 additions & 867 deletions

File tree

0 commit comments

Comments
 (0)