Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MockSequentialTaskProcessor ¶
MockSequentialTaskProcessor is an autogenerated mock type for the SequentialTaskProcessor type
func (*MockSequentialTaskProcessor) Start ¶
func (_m *MockSequentialTaskProcessor) Start()
Start provides a mock function with given fields:
func (*MockSequentialTaskProcessor) Stop ¶
func (_m *MockSequentialTaskProcessor) Stop()
Stop provides a mock function with given fields:
func (*MockSequentialTaskProcessor) Submit ¶
func (_m *MockSequentialTaskProcessor) Submit(_a0 SequentialTask) error
Submit provides a mock function with given fields: _a0
type SequentialTask ¶
type SequentialTask interface {
// Execute process this task
Execute() error
// HandleErr handle the error returned by Execute
HandleErr(err error) error
// RetryErr check whether to retry after HandleErr(Execute())
RetryErr(err error) bool
// Ack marks the task as successful completed
Ack()
// Nack marks the task as unsuccessful completed
Nack()
}
SequentialTask is the interface for tasks which should be executed sequentially
type SequentialTaskProcessor ¶
type SequentialTaskProcessor interface {
common.Daemon
Submit(task SequentialTask) error
}
SequentialTaskProcessor is the generic coroutine pool interface which process sequential task
func NewSequentialTaskProcessor ¶
func NewSequentialTaskProcessor(coroutineSize int, taskQueueHashFn collection.HashFunc, taskQueueFactory SequentialTaskQueueFactory, metricsClient metrics.Client, logger log.Logger) SequentialTaskProcessor
NewSequentialTaskProcessor create a new sequential tasks processor
type SequentialTaskQueue ¶ added in v0.5.8
type SequentialTaskQueue interface {
// QueueID return the ID of the queue, as well as the tasks inside (same)
QueueID() interface{}
// Offer push an task to the task set
Add(task SequentialTask)
// Poll pop an task from the task set
Remove() SequentialTask
// IsEmpty indicate if the task set is empty
IsEmpty() bool
// Len return the size of the queue
Len() int
}
SequentialTaskQueue is the generic task queue interface which group sequential tasks to be executed one by one
type SequentialTaskQueueFactory ¶ added in v0.5.8
type SequentialTaskQueueFactory func(task SequentialTask) SequentialTaskQueue
SequentialTaskQueueFactory is the function which generate a new SequentialTaskQueue for a give SequentialTask