func PublishQSizeOption(v uint) workManagerOption {
	return func(w *workManager) workManagerOption {
		previous := w.publishQSize
		w.publishQSize = v
		return PublishQSizeOption(previous)
	}
}
PublishQSizeOption sets the publisher queue size(length) and
returns the previous queue option state.
package scheduler
import "sync"
type workManager struct {
	state          workManagerState
	collectq       *queue
	publishq       *queue
	processq       *queue
	collectWkrs    []*worker
	publishWkrs    []*worker
	processWkrs    []*worker
	collectQSize   uint
	publishQSize   uint
	processQSize   uint
	collectWkrSize uint
	publishWkrSize uint
	processWkrSize uint
	collectchan    chan queuedJob
	publishchan    chan queuedJob
	processchan    chan queuedJob
	kill           chan struct{}
	mutex          *sync.Mutex
}
type workManagerState int
const (
	workManagerStopped workManagerState = iota
	workManagerRunning
	defaultQSize   uint = 5
	defaultWkrSize uint = 1
)
type workManagerOption func(w *workManager) workManagerOption
func CollectQSizeOption(v uint) workManagerOption {
	return func(w *workManager) workManagerOption {
		previous := w.collectQSize
		w.collectQSize = v
		return CollectQSizeOption(previous)
	}
}