package worker_watcher //nolint:golint,stylecheck import ( "context" "github.com/spiral/roadrunner/v2/pkg/worker" ) type Watcher interface { // AddToWatch used to add stack to wait its state AddToWatch(workers []worker.SyncWorker) error // GetFreeWorker provide first free worker GetFreeWorker(ctx context.Context) (*worker.SyncWorkerImpl, error) // PutWorker enqueues worker back PushWorker(w worker.SyncWorker) // AllocateNew used to allocate new worker and put in into the WorkerWatcher AllocateNew() error // Destroy destroys the underlying stack Destroy(ctx context.Context) // WorkersList return all stack w/o removing it from internal storage WorkersList() []*worker.SyncWorkerImpl // RemoveWorker remove worker from the stack RemoveWorker(wb worker.SyncWorker) error }