@@ -33,6 +33,8 @@ import (
3333 "syscall"
3434 "time"
3535
36+ "go.uber.org/cadence/internal/common/debug"
37+
3638 "github.com/shirou/gopsutil/cpu"
3739 "github.com/uber-go/tally"
3840 "go.uber.org/zap"
@@ -127,6 +129,7 @@ type (
127129 shutdownTimeout time.Duration
128130 userContextCancel context.CancelFunc
129131 host string
132+ pollerTracker debug.PollerTracker
130133 }
131134
132135 // baseWorker that wraps worker activities.
@@ -178,16 +181,15 @@ func newBaseWorker(options baseWorkerOptions, logger *zap.Logger, metricsScope t
178181 }
179182
180183 bw := & baseWorker {
181- options : options ,
182- shutdownCh : make (chan struct {}),
183- taskLimiter : rate .NewLimiter (rate .Limit (options .maxTaskPerSecond ), 1 ),
184- retrier : backoff .NewConcurrentRetrier (pollOperationRetryPolicy ),
185- logger : logger .With (zapcore.Field {Key : tagWorkerType , Type : zapcore .StringType , String : options .workerType }),
186- metricsScope : tagScope (metricsScope , tagWorkerType , options .workerType ),
187- pollerRequestCh : make (chan struct {}, options .maxConcurrentTask ),
188- pollerAutoScaler : pollerAS ,
189- taskQueueCh : make (chan interface {}), // no buffer, so poller only able to poll new task after previous is dispatched.
190-
184+ options : options ,
185+ shutdownCh : make (chan struct {}),
186+ taskLimiter : rate .NewLimiter (rate .Limit (options .maxTaskPerSecond ), 1 ),
187+ retrier : backoff .NewConcurrentRetrier (pollOperationRetryPolicy ),
188+ logger : logger .With (zapcore.Field {Key : tagWorkerType , Type : zapcore .StringType , String : options .workerType }),
189+ metricsScope : tagScope (metricsScope , tagWorkerType , options .workerType ),
190+ pollerRequestCh : make (chan struct {}, options .maxConcurrentTask ),
191+ pollerAutoScaler : pollerAS ,
192+ taskQueueCh : make (chan interface {}), // no buffer, so poller only able to poll new task after previous is dispatched.
191193 limiterContext : ctx ,
192194 limiterContextCancel : cancel ,
193195 sessionTokenBucket : sessionTokenBucket ,
@@ -244,6 +246,8 @@ func (bw *baseWorker) isShutdown() bool {
244246
245247func (bw * baseWorker ) runPoller () {
246248 defer bw .shutdownWG .Done ()
249+ defer bw .options .pollerTracker .Start ().Stop ()
250+
247251 bw .metricsScope .Counter (metrics .PollerStartCounter ).Inc (1 )
248252
249253 for {
0 commit comments