f
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
package queue
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"bdrp-server/app/main/api/internal/svc"
|
||||
"bdrp-server/app/main/api/internal/types"
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/hibiken/asynq"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type CronJob struct {
|
||||
@@ -14,6 +16,8 @@ type CronJob struct {
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
const AgentMembershipExpireScanTaskTime = "5 0 * * *"
|
||||
|
||||
func NewCronJob(ctx context.Context, svcCtx *svc.ServiceContext) *CronJob {
|
||||
return &CronJob{
|
||||
ctx: ctx,
|
||||
@@ -31,6 +35,29 @@ func (l *CronJob) Register() *asynq.ServeMux {
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("定时任务注册失败:%v", err))
|
||||
}
|
||||
|
||||
// 注册会员到期扫描任务(每天凌晨执行)
|
||||
expireScanTask := asynq.NewTask(types.MsgAgentMembershipExpireScan, nil, nil)
|
||||
_, err = scheduler.Register(AgentMembershipExpireScanTaskTime, expireScanTask)
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("会员到期扫描任务注册失败:%v", err))
|
||||
}
|
||||
|
||||
// 启动补偿:服务启动后立即触发一次扫描任务(按日期去重)
|
||||
client := asynq.NewClient(redisClientOpt)
|
||||
startupTaskID := fmt.Sprintf("agent_membership_expire_scan_startup_%s", time.Now().Format("20060102"))
|
||||
_, enqueueErr := client.Enqueue(
|
||||
asynq.NewTask(types.MsgAgentMembershipExpireScan, nil),
|
||||
asynq.MaxRetry(1),
|
||||
asynq.TaskID(startupTaskID),
|
||||
)
|
||||
if enqueueErr != nil {
|
||||
logx.Errorf("启动补偿扫描任务入队失败: %v", enqueueErr)
|
||||
}
|
||||
if closeErr := client.Close(); closeErr != nil {
|
||||
logx.Errorf("关闭启动补偿任务客户端失败: %v", closeErr)
|
||||
}
|
||||
|
||||
scheduler.Start()
|
||||
fmt.Println("定时任务启动!!!")
|
||||
|
||||
@@ -38,6 +65,8 @@ func (l *CronJob) Register() *asynq.ServeMux {
|
||||
mux.Handle(types.MsgPaySuccessQuery, NewPaySuccessNotifyUserHandler(l.svcCtx))
|
||||
mux.Handle(types.MsgCleanQueryData, NewCleanQueryDataHandler(l.svcCtx))
|
||||
mux.Handle(types.MsgUnfreezeCommission, NewUnfreezeCommissionHandler(l.svcCtx))
|
||||
mux.Handle(types.MsgAgentMembershipExpireScan, NewAgentMembershipExpireScanHandler(l.svcCtx))
|
||||
mux.Handle(types.MsgAgentMembershipExpireHandle, NewAgentMembershipExpireHandleHandler(l.svcCtx))
|
||||
|
||||
return mux
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user