53
// newTaskMatcher returns a task matcher instance. The returned instance can be used by task producers and consumers to
54
// find a match. Both sync matches and non-sync matches should use this implementation
55
>
func newTaskMatcher(config *taskQueueConfig, fwdr *Forwarder, metricsHandler metrics.Handler, rateLimiter quotas.RateLimiter) *TaskMatcher {
matcher.go
56
>
return &TaskMatcher{
57
>
config: config,
58
>
rateLimiter: rateLimiter,
59
>
metricsHandler: metricsHandler,
60
>
fwdr: fwdr,
61
>
taskC: make(chan *internalTask),
62
>
queryTaskC: make(chan *internalTask),
63
>
closeC: make(chan struct{}),
64
>
backlogTasksCreateTime: make(map[int64]int),
65
>
}
66
>
}
67
68
func (tm *TaskMatcher) Start() {