v1.1
This commit is contained in:
@@ -3,10 +3,10 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
"ycc-server/app/main/api/internal/config"
|
||||
"ycc-server/app/main/api/internal/types"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/hibiken/asynq"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
@@ -31,14 +31,14 @@ func NewAsynqService(c config.Config) *AsynqService {
|
||||
func (s *AsynqService) Close() error {
|
||||
return s.client.Close()
|
||||
}
|
||||
func (s *AsynqService) SendQueryTask(orderID int64) error {
|
||||
func (s *AsynqService) SendQueryTask(orderID string) error {
|
||||
// 准备任务的 payload
|
||||
payload := types.MsgPaySuccessQueryPayload{
|
||||
OrderID: orderID,
|
||||
}
|
||||
payloadBytes, err := json.Marshal(payload)
|
||||
if err != nil {
|
||||
logx.Errorf("发送异步任务失败 (无法编码 payload): %v, 订单号: %d", err, orderID)
|
||||
logx.Errorf("发送异步任务失败 (无法编码 payload): %v, 订单号: %s", err, orderID)
|
||||
return err // 直接返回错误,避免继续执行
|
||||
}
|
||||
|
||||
@@ -51,24 +51,24 @@ func (s *AsynqService) SendQueryTask(orderID int64) error {
|
||||
// 将任务加入队列并获取任务信息
|
||||
info, err := s.client.Enqueue(task)
|
||||
if err != nil {
|
||||
logx.Errorf("发送异步任务失败 (加入队列失败): %+v, 订单号: %d", err, orderID)
|
||||
logx.Errorf("发送异步任务失败 (加入队列失败): %+v, 订单号: %s", err, orderID)
|
||||
return err
|
||||
}
|
||||
|
||||
// 记录成功日志,带上任务 ID 和队列信息
|
||||
logx.Infof("发送异步任务成功,任务ID: %s, 队列: %s, 订单号: %d", info.ID, info.Queue, orderID)
|
||||
logx.Infof("发送异步任务成功,任务ID: %s, 队列: %s, 订单号: %s", info.ID, info.Queue, orderID)
|
||||
return nil
|
||||
}
|
||||
|
||||
// SendAgentProcessTask 发送代理处理任务
|
||||
func (s *AsynqService) SendAgentProcessTask(orderID int64) error {
|
||||
func (s *AsynqService) SendAgentProcessTask(orderID string) error {
|
||||
// 准备任务的 payload
|
||||
payload := types.MsgAgentProcessPayload{
|
||||
OrderID: orderID,
|
||||
}
|
||||
payloadBytes, err := json.Marshal(payload)
|
||||
if err != nil {
|
||||
logx.Errorf("发送代理处理任务失败 (无法编码 payload): %v, 订单号: %d", err, orderID)
|
||||
logx.Errorf("发送代理处理任务失败 (无法编码 payload): %v, 订单号: %s", err, orderID)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -81,31 +81,31 @@ func (s *AsynqService) SendAgentProcessTask(orderID int64) error {
|
||||
// 将任务加入队列并获取任务信息
|
||||
info, err := s.client.Enqueue(task)
|
||||
if err != nil {
|
||||
logx.Errorf("发送代理处理任务失败 (加入队列失败): %+v, 订单号: %d", err, orderID)
|
||||
logx.Errorf("发送代理处理任务失败 (加入队列失败): %+v, 订单号: %s", err, orderID)
|
||||
return err
|
||||
}
|
||||
|
||||
// 记录成功日志,带上任务 ID 和队列信息
|
||||
logx.Infof("发送代理处理任务成功,任务ID: %s, 队列: %s, 订单号: %d", info.ID, info.Queue, orderID)
|
||||
logx.Infof("发送代理处理任务成功,任务ID: %s, 队列: %s, 订单号: %s", info.ID, info.Queue, orderID)
|
||||
return nil
|
||||
}
|
||||
|
||||
// SendUnfreezeTask 发送解冻任务(延迟执行)
|
||||
func (s *AsynqService) SendUnfreezeTask(freezeTaskId int64, processAt time.Time) error {
|
||||
func (s *AsynqService) SendUnfreezeTask(freezeTaskId string, processAt time.Time) error {
|
||||
// 准备任务的 payload
|
||||
payload := types.MsgUnfreezeCommissionPayload{
|
||||
FreezeTaskId: freezeTaskId,
|
||||
}
|
||||
payloadBytes, err := json.Marshal(payload)
|
||||
if err != nil {
|
||||
logx.Errorf("发送解冻任务失败 (无法编码 payload): %v, 冻结任务ID: %d", err, freezeTaskId)
|
||||
logx.Errorf("发送解冻任务失败 (无法编码 payload): %v, 冻结任务ID: %s", err, freezeTaskId)
|
||||
return err
|
||||
}
|
||||
|
||||
options := []asynq.Option{
|
||||
asynq.MaxRetry(5), // 设置最大重试次数
|
||||
asynq.ProcessAt(processAt), // 延迟到指定时间执行
|
||||
asynq.Queue("critical"), // 使用关键队列
|
||||
asynq.MaxRetry(5), // 设置最大重试次数
|
||||
asynq.ProcessAt(processAt), // 延迟到指定时间执行
|
||||
asynq.Queue("critical"), // 使用关键队列
|
||||
}
|
||||
// 创建任务
|
||||
task := asynq.NewTask(types.MsgUnfreezeCommission, payloadBytes, options...)
|
||||
@@ -113,11 +113,11 @@ func (s *AsynqService) SendUnfreezeTask(freezeTaskId int64, processAt time.Time)
|
||||
// 将任务加入队列并获取任务信息
|
||||
info, err := s.client.Enqueue(task)
|
||||
if err != nil {
|
||||
logx.Errorf("发送解冻任务失败 (加入队列失败): %+v, 冻结任务ID: %d", err, freezeTaskId)
|
||||
logx.Errorf("发送解冻任务失败 (加入队列失败): %+v, 冻结任务ID: %s", err, freezeTaskId)
|
||||
return err
|
||||
}
|
||||
|
||||
// 记录成功日志,带上任务 ID 和队列信息
|
||||
logx.Infof("发送解冻任务成功,任务ID: %s, 队列: %s, 冻结任务ID: %d, 执行时间: %v", info.ID, info.Queue, freezeTaskId, processAt)
|
||||
logx.Infof("发送解冻任务成功,任务ID: %s, 队列: %s, 冻结任务ID: %s, 执行时间: %v", info.ID, info.Queue, freezeTaskId, processAt)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user