39 lines
967 B
Markdown
39 lines
967 B
Markdown
# asynq
|
|
|
|
[GitHub网址](https://github.com/hibiken/asynq)
|
|
|
|
- 入队流程
|
|
|
|
```go
|
|
payload := &jobtype.xxxPayload{}
|
|
payloadByte, err := jsoniter.Marshal(payload)
|
|
if err != nil {
|
|
logt.Error("xxx jsoniter.Marshal err:", err)
|
|
return nil, zerr.New(rescode.DataFormatConversionError)
|
|
}
|
|
_, err = l.svcCtx.AsynqClient.Enqueue(asynq.NewTask(jobtype.xxx, payloadBytes, asynq.Queue(consts.QueueLow)))
|
|
if err != nil {
|
|
logt.Error("xxx enqueue err:", err)
|
|
return nil, zerr.New(rescode.EnqueueErr)
|
|
}
|
|
```
|
|
|
|
- 自行定义了队列优先级,在入队的时候可以加参数进行选择
|
|
|
|
```
|
|
consts.QueueCritical: 6,
|
|
consts.QueueDefault: 3,
|
|
consts.QueueLow: 1,
|
|
```
|
|
|
|
- 处理前流程(反序列化,获取数据)
|
|
|
|
```go
|
|
var payload jobtype.xxx
|
|
err := json.Unmarshal(task.Payload(), &payload)
|
|
if err != nil {
|
|
logt.Error("xxx unmarshal payload err:", err)
|
|
return zerr.New(rescode.DataFormatConversionError)
|
|
}
|
|
```
|