All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m58s
- 新增 expires_at 字段和复合索引,待支付订单 30 分钟超时自动取消 - 实现 cancelOrder/unfreezeWalletForCancel 钱包余额解冻逻辑 - 创建 Asynq 定时任务(order_expire/alert_check/data_cleanup) - 将原有 time.Ticker 轮询迁移至 Asynq Scheduler 统一调度 - 同步 delta specs 到 main specs 并归档变更
36 lines
898 B
Go
36 lines
898 B
Go
package task
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/hibiken/asynq"
|
|
"go.uber.org/zap"
|
|
|
|
pollingSvc "github.com/break/junhong_cmp_fiber/internal/service/polling"
|
|
)
|
|
|
|
// AlertCheckHandler 告警检查任务处理器
|
|
type AlertCheckHandler struct {
|
|
alertService *pollingSvc.AlertService
|
|
logger *zap.Logger
|
|
}
|
|
|
|
// NewAlertCheckHandler 创建告警检查处理器
|
|
func NewAlertCheckHandler(alertService *pollingSvc.AlertService, logger *zap.Logger) *AlertCheckHandler {
|
|
return &AlertCheckHandler{
|
|
alertService: alertService,
|
|
logger: logger,
|
|
}
|
|
}
|
|
|
|
// HandleAlertCheck 处理告警检查任务
|
|
// 由 Asynq Scheduler 每分钟触发,检查所有告警规则
|
|
func (h *AlertCheckHandler) HandleAlertCheck(ctx context.Context, _ *asynq.Task) error {
|
|
if err := h.alertService.CheckAlerts(ctx); err != nil {
|
|
h.logger.Error("告警检查失败", zap.Error(err))
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|