common

package
v0.0.0-...-beb54cf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2020 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package common provides primitives for task registration and marshalling of task request data

Index

Constants

View Source
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

type TaskProcessEvent struct {
	EventId int
	Task    *Task
	Err     error
	Result  []interface{}
}

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

type TaskQueueEventHandler interface {
	OnTaskQueued(task *Task)
	OnTaskAcceptTimeout(task *Task)
}

TaskQueueEventHandler handles task queue events

type TaskThreadError

type TaskThreadError struct {
	Err  error
	Task *Task
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL