重构代码结构与认证体系,集成异步任务消费者
This commit is contained in:
18
web/events/channel.go
Normal file
18
web/events/channel.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package events
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/hibiken/asynq"
|
||||
"log/slog"
|
||||
)
|
||||
|
||||
const RemoveChannel = "channel:remove"
|
||||
|
||||
func NewRemoveChannel(ids []int32) *asynq.Task {
|
||||
bytes, err := json.Marshal(ids)
|
||||
if err != nil {
|
||||
slog.Error("序列化删除通道任务失败", "error", err)
|
||||
return nil
|
||||
}
|
||||
return asynq.NewTask(RemoveChannel, bytes)
|
||||
}
|
||||
33
web/events/log.go
Normal file
33
web/events/log.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package events
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/hibiken/asynq"
|
||||
"log/slog"
|
||||
"time"
|
||||
)
|
||||
|
||||
type RequestLog struct {
|
||||
Type string
|
||||
User int32
|
||||
IP string
|
||||
UA string
|
||||
Method string
|
||||
Path string
|
||||
Status int
|
||||
Error string
|
||||
Latency time.Duration
|
||||
Time time.Time
|
||||
}
|
||||
|
||||
func NewRequestLog(data RequestLog) *asynq.Task {
|
||||
var rs, err = json.Marshal(data)
|
||||
if err != nil {
|
||||
slog.Error("日志数据序列化失败", slog.Any("err", err), slog.Any("data", data))
|
||||
return nil
|
||||
}
|
||||
return asynq.NewTask("logs:request", rs)
|
||||
}
|
||||
|
||||
type LoginLog struct {
|
||||
}
|
||||
25
web/events/trade.go
Normal file
25
web/events/trade.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package events
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log/slog"
|
||||
trade2 "platform/web/domains/trade"
|
||||
|
||||
"github.com/hibiken/asynq"
|
||||
)
|
||||
|
||||
const CancelTrade = "trade:update"
|
||||
|
||||
type CancelTradeData struct {
|
||||
TradeNo string `json:"trade_no" validate:"required"`
|
||||
Method trade2.Method `json:"method" validate:"required"`
|
||||
}
|
||||
|
||||
func NewCancelTrade(data CancelTradeData) *asynq.Task {
|
||||
bytes, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
slog.Error("序列化更新交易任务失败", "error", err)
|
||||
return nil
|
||||
}
|
||||
return asynq.NewTask(CancelTrade, bytes)
|
||||
}
|
||||
Reference in New Issue
Block a user