Documentation ¶
Overview ¶
Package common provides primitives for task registration and marshalling of task request data
Index ¶
- Constants
- func GetRegisteredTasks() []string
- func RegisterTask(taskName string, constructor TaskConstructor)
- type BaseTaskHandler
- type Task
- type TaskConstructor
- type TaskHandler
- type TaskHandlerFunc
- type TaskPayloadHandler
- type TaskProcessEvent
- type TaskProcessEventHandler
- type TaskQueueEventHandler
- type TaskThreadError
Constants ¶
const ( Error = iota Success Heartbeat Result )
Variables ¶
This section is empty.
Functions ¶
func GetRegisteredTasks ¶
func GetRegisteredTasks() []string
GetRegisteredTasks returns slice with all task names registered
func RegisterTask ¶
func RegisterTask(taskName string, constructor TaskConstructor)
RegisterTask registers tasks by name and stores TaskConstructor for TaskHandler instances creation
Types ¶
type BaseTaskHandler ¶
type BaseTaskHandler struct {
// contains filtered or unexported fields
}
BaseTaskHandler is base primitive for final tasks implementations. It is a default implementation of TaskHandler interface
func NewBaseTaskHandler ¶
func NewBaseTaskHandler(handler TaskHandlerFunc) *BaseTaskHandler
func NewBaseTaskHandlerWithPayload ¶
func NewBaseTaskHandlerWithPayload(handler TaskHandlerFunc, payload interface{}) *BaseTaskHandler
func (*BaseTaskHandler) Handle ¶
func (b *BaseTaskHandler) Handle() error
func (*BaseTaskHandler) Payload ¶
func (b *BaseTaskHandler) Payload() interface{}
func (*BaseTaskHandler) SetTask ¶
func (b *BaseTaskHandler) SetTask(task *Task)
func (*BaseTaskHandler) SetTaskProcessEventHandler ¶
func (b *BaseTaskHandler) SetTaskProcessEventHandler(eventHandler TaskProcessEventHandler)
type Task ¶
type Task struct { Id uint64 `json:"-"` Name string `json:"name"` Payload json.RawMessage `json:"payload"` }
Task struct contains task requests data
type TaskConstructor ¶
type TaskConstructor func() TaskHandler
TaskConstructor creates TaskHandler instances
type TaskHandler ¶
type TaskHandler interface { SetTaskProcessEventHandler(eventHandler TaskProcessEventHandler) SetTask(task *Task) Handle() error Payload() interface{} }
TaskHandler handles task requests. Final task implements TaskHandle interface
func GetRegisteredTaskHandler ¶
func GetRegisteredTaskHandler(task *Task) (TaskHandler, error)
GetRegisteredTaskHandler retrieves TaskHandlers by name. Task request payload is unmarshalled to initialize TaskHandler
type TaskHandlerFunc ¶
type TaskHandlerFunc func(interface{}, *Task, TaskProcessEventHandler) error
TaskHandlerFunc is helper class for creating short task implementation containing one processing function
type TaskPayloadHandler ¶
type TaskPayloadHandler interface {
HandlePayload(task *Task)
}
TaskPayloadHandler handles consumer task payload. TaskPayloadHandler implementation dispatches consumer requests to worker queue
type TaskProcessEvent ¶
TaskProcessEvent struct contains task process event data
func (*TaskProcessEvent) GetEventType ¶
func (e *TaskProcessEvent) GetEventType() string
type TaskProcessEventHandler ¶
type TaskProcessEventHandler interface { OnTaskSuccess(task *Task) OnTaskHeartbeat(task *Task) OnTaskError(task *Task, err error) OnTaskResult(task *Task, a ...interface{}) }
TaskProcessEventHandler handles events arising from final task processing
type TaskQueueEventHandler ¶
TaskQueueEventHandler handles task queue events
type TaskThreadError ¶
TaskThreadError is default error thrown during task processing
func NewTaskThreadError ¶
func NewTaskThreadError(task *Task, err error) *TaskThreadError
func (*TaskThreadError) Error ¶
func (err *TaskThreadError) Error() string