service/library/contentaudit/imageaudit/taskscheduler.go

45 lines
915 B
Go
Raw Normal View History

2023-12-21 22:17:40 +08:00
package imageaudit
import (
"fmt"
"service/library/configcenter"
"time"
)
var defaultImageAuditTaskScheduler *ImageAuditTaskScheduler
// 图像审核任务调度器
type ImageAuditTaskScheduler struct {
2024-01-20 06:33:10 +08:00
// 同步标志
2024-01-18 18:19:31 +08:00
batchFlag chan bool // 批处理同步标志
2023-12-21 22:17:40 +08:00
// 状态记录
batchId string // 当前批次号
}
func initScheduler(cfg *configcenter.ImageAuditConfig) {
defaultImageAuditTaskScheduler = &ImageAuditTaskScheduler{
2024-01-18 18:19:31 +08:00
batchFlag: make(chan bool, 1),
2024-01-20 06:33:10 +08:00
batchId: genereteBatchId(),
2023-12-21 22:17:40 +08:00
}
defaultImageAuditTaskScheduler.batchFlag <- true
}
// 批处理上锁
func (s *ImageAuditTaskScheduler) lock() {
<-s.batchFlag
}
// 批处理解锁
func (s *ImageAuditTaskScheduler) unLock() {
s.batchFlag <- true
}
// 生成批次号
func genereteBatchId() string {
now := time.Now()
y, m, d := now.Date()
h, mi, s := now.Clock()
2024-01-18 18:19:31 +08:00
return fmt.Sprintf("%d%2d%2d%2d%2d%02d", y, m, d, h, mi, s)
2023-12-21 22:17:40 +08:00
}