Compare commits

..

3 Commits

Author SHA1 Message Date
Bel LaPointe
705193a999 log n of p 2026-03-09 13:28:56 -06:00
Bel LaPointe
bb203dbdf9 open 1 conn at a time 2026-03-09 13:26:47 -06:00
Bel LaPointe
515feed98b accept P 2026-03-09 13:24:54 -06:00

View File

@@ -7,6 +7,7 @@ import (
"fmt" "fmt"
"log" "log"
"os" "os"
"sync"
"time" "time"
"gitea.bel.blue/bel/with" "gitea.bel.blue/bel/with"
@@ -24,10 +25,29 @@ func run(ctx context.Context) error {
fs := flag.NewFlagSet(os.Args[0], flag.ContinueOnError) fs := flag.NewFlagSet(os.Args[0], flag.ContinueOnError)
c := fs.String("c", "postgresql://pulsegres:pulsegres@localhost:15432", "conn string") c := fs.String("c", "postgresql://pulsegres:pulsegres@localhost:15432", "conn string")
d := fs.Duration("d", time.Second, "interval") d := fs.Duration("d", time.Second, "interval")
p := fs.Int("p", 1, "concurrent goroutines")
if err := fs.Parse(os.Args[1:]); err != nil { if err := fs.Parse(os.Args[1:]); err != nil {
panic(err) panic(err)
} }
for i := 0; i < *p-1; i++ {
log.Printf("dialing %v of %v background connections...", i+1, *p-1)
func() {
connected := &sync.WaitGroup{}
connected.Add(1)
go with.PSQL(ctx, *c, func(pg *sql.DB) error {
connected.Done()
with.GoEvery(ctx, *d, func() {
if _, err := pg.ExecContext(ctx, `SELECT 1`); err != nil {
log.Println("!", err)
}
})
return ctx.Err()
})
connected.Wait()
}()
}
return with.PSQL(ctx, *c, func(pg *sql.DB) error { return with.PSQL(ctx, *c, func(pg *sql.DB) error {
log.Println("staging...") log.Println("staging...")
if _, err := pg.ExecContext(ctx, ` if _, err := pg.ExecContext(ctx, `