diff --git a/lib/gat/pool/pools/transaction/apply.go b/lib/gat/pool/pools/transaction/apply.go index 637585b0cce814b50b61dcb30e32520921e4032c..47bfebf9b13700e1caac443bae92ae2556ebd0bd 100644 --- a/lib/gat/pool/pools/transaction/apply.go +++ b/lib/gat/pool/pools/transaction/apply.go @@ -3,7 +3,7 @@ package transaction import "pggat/lib/gat/pool" func Apply(options pool.Options) pool.Options { - options.Pooler = new(Pooler) + options.Pooler = NewPooler() options.ParameterStatusSync = pool.ParameterStatusSyncDynamic options.ExtendedQuerySync = true options.ReleaseAfterTransaction = true diff --git a/lib/gat/pool/pools/transaction/pooler.go b/lib/gat/pool/pools/transaction/pooler.go index c5c0f1aefbfce8c9af3e80978771717c60007c44..432687ccda09d88767e7a1614600d4fd36265917 100644 --- a/lib/gat/pool/pools/transaction/pooler.go +++ b/lib/gat/pool/pools/transaction/pooler.go @@ -12,6 +12,12 @@ type Pooler struct { s schedulers.Scheduler } +func NewPooler() *Pooler { + p := new(Pooler) + schedulers.Test(&p.s) + return p +} + func (T *Pooler) NewClient() uuid.UUID { return T.s.NewUser() } diff --git a/lib/rob/schedulers/v2/scheduler.go b/lib/rob/schedulers/v2/scheduler.go index 08ca6d741e6cd5fd6f737e0541447c46ee2a2212..c49b3fddfdeb063d2aead2e42df1f0b6b4809280 100644 --- a/lib/rob/schedulers/v2/scheduler.go +++ b/lib/rob/schedulers/v2/scheduler.go @@ -1,9 +1,10 @@ package schedulers import ( - "sync" - "github.com/google/uuid" + "sync" + "time" + "tuxpa.in/a/zlog/log" "pggat/lib/rob" "pggat/lib/rob/schedulers/v2/job" @@ -25,6 +26,22 @@ type Scheduler struct { mu sync.RWMutex } +func Test(s *Scheduler) { + go func() { + for { + time.Sleep(1 * time.Second) + func() { + s.mu.RLock() + defer s.mu.RUnlock() + + s.bmu.Lock() + defer s.bmu.Unlock() + log.Printf("%d sinks | %d backlogged jobs", len(s.sinks), len(s.backlog)) + }() + } + }() +} + func (T *Scheduler) NewWorker() uuid.UUID { worker := uuid.New()