go-judge/taskqueue/interface.go
2019-09-01 20:40:34 -07:00

17 lines
416 B
Go

package taskqueue
import "github.com/criyle/go-judge/types"
// Queue provides asynchronous message queue to run execution tasks
type Queue interface {
// Enqueue used to initial a RPC call and receive result to channel
Enqueue(types.RunTask, chan<- types.RunTaskResult) error
C() <-chan Task
}
// Task represent a single task to run
type Task interface {
Task() *types.RunTask
Finish(*types.RunTaskResult)
}