package service import ( "dy-admin/internal/pcmserver/bus/cabinet_pkg" "dy-admin/internal/pcmserver/options" "dy-admin/internal/pcmserver/pkg/crontab" "fmt" "strconv" ) func InitCabinet(opt *options.CabinetConnectOptions) { // 初始化设备日志管道 cabinet_pkg.RunDeviceLogGoroutine() // 初始化定时器 crontab.NewCronManage() // 柜子通道管理 newCabinetsChannel() // 内存柜子管理 cabinet_pkg.NewCabinets() // 内存柜子模式 cabinet_pkg.InitCabinetMemConfig() // 初始化内存柜子 ServicesGroupApp.CabinetService.initCabinets() // 柜子时间管理 需要开启定时任务的情况 ServicesGroupApp.CabinetTimeService.initCabinetTimeCronTab() // 请假管理时间,开启定时任务 ServicesGroupApp.LeaveLogService.initLeaveLogCronTab() // 每分钟0秒跑一次的定时任务 setWorkTimeCronTab() // 每天凌晨3点开始清理日志 setDeleteSysLogCronTab() // 初始化tcp cabinet_pkg.InitTcpServer(strconv.Itoa(opt.Port)) // 初始化ws连接管理 initHomeClientHub() } func setWorkTimeCronTab() { jobName := "work_time_always" job := &WorkTimeCronJob{} // 每分钟的0秒开始执行 spec := fmt.Sprintf("%s %s %s %s %s %s", "0", "*", "*", "*", "*", "*") err := crontab.GetCron("work_time").AddJobWithParams(jobName, spec, job) if err != nil { panic(err) } } func setDeleteSysLogCronTab() { jobName := "delete_log" job := &DeleteLogCronJob{} spec := fmt.Sprintf("%s %s %s %s %s %s", "0", "0", "3", "*", "*", "*") err := crontab.GetCron("delete_log").AddJobWithParams(jobName, spec, job) if err != nil { panic(err) } }