Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MergeTask ¶
type MergeTask interface { Task // MergeWith other task, return true if merge success. // After success, the task merged should be dropped. MergeWith(Task) bool }
MergeTask is a Task which can be merged with other task
type Scheduler ¶
type Scheduler interface { // Add a new task into scheduler, follow some constraints. // 1. It's a non-block operation. // 2. Error will be returned if scheduler reaches some limit. // 3. Concurrent safe. Add(task Task) error // Start schedule the owned task asynchronously and continuously. // Shall be called only once Start() // Stop make scheduler deny all incoming tasks // and cleans up all related resources Stop() // GetWaitingTaskTotalNQ GetWaitingTaskTotalNQ() int64 // GetWaitingTaskTotal GetWaitingTaskTotal() int64 }
func NewScheduler ¶
NewScheduler create a scheduler by policyName.
type Task ¶
type Task interface { // Return the username which task is belong to. // Return "" if the task do not contain any user info. Username() string // Return whether the task would be running on GPU. IsGpuIndex() bool // PreExecute the task, only call once. PreExecute() error // Execute the task, only call once. Execute() error // Done notify the task finished. Done(err error) // Check if the Task is canceled. // Concurrent safe. Canceled() error // Wait for task finish. // Concurrent safe. Wait() error // Return the NQ of task. NQ() int64 SearchResult() *internalpb.SearchResults }
A task is execute unit of scheduler.
Click to show internal directories.
Click to hide internal directories.