异步任务
组成
- producter:负责任务产生;
- broker:负责任务传递;(暂时保存产生的任务以便于消费)
- consumer:负责任务消费;
- result backend:非必需,用来保存返回结果。
流程
productor
↓↓
broker
↓↑可选:消费后向broker确认已经消费,然后broker删除此任务,否则将超时重发任务
consumer
↓↓
result backend
异步框架
machinery
intsall
go get -u github.com/RichardKnop/machinery/v1
message
// Signature represents a single task invocation
type Signature struct {
UUID string
Name string
RoutingKey string
ETA *time.Time
GroupUUID string
GroupTaskCount int
Args []Arg
Headers Headers
Immutable bool
RetryCount int
RetryTimeout int
OnSuccess []*Signature
OnError []*Signature
ChordCallback *Signature