cabinet_init.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package service
  2. import (
  3. "dy-admin/internal/pcmserver/bus/cabinet_pkg"
  4. "dy-admin/internal/pcmserver/options"
  5. "dy-admin/internal/pcmserver/pkg/crontab"
  6. "fmt"
  7. "strconv"
  8. )
  9. func InitCabinet(opt *options.CabinetConnectOptions) {
  10. // 初始化设备日志管道
  11. cabinet_pkg.RunDeviceLogGoroutine()
  12. // 初始化定时器
  13. crontab.NewCronManage()
  14. // 柜子通道管理
  15. newCabinetsChannel()
  16. // 内存柜子管理
  17. cabinet_pkg.NewCabinets()
  18. // 内存柜子模式
  19. cabinet_pkg.InitCabinetMemConfig()
  20. // 初始化内存柜子
  21. ServicesGroupApp.CabinetService.initCabinets()
  22. // 柜子时间管理 需要开启定时任务的情况
  23. ServicesGroupApp.CabinetTimeService.initCabinetTimeCronTab()
  24. // 请假管理时间,开启定时任务
  25. ServicesGroupApp.LeaveLogService.initLeaveLogCronTab()
  26. // 每分钟0秒跑一次的定时任务
  27. setWorkTimeCronTab()
  28. // 每天凌晨3点开始清理日志
  29. setDeleteSysLogCronTab()
  30. // 初始化tcp
  31. cabinet_pkg.InitTcpServer(strconv.Itoa(opt.Port))
  32. // 初始化ws连接管理
  33. initHomeClientHub()
  34. }
  35. func setWorkTimeCronTab() {
  36. jobName := "work_time_always"
  37. job := &WorkTimeCronJob{}
  38. // 每分钟的0秒开始执行
  39. spec := fmt.Sprintf("%s %s %s %s %s %s", "0", "*", "*", "*", "*", "*")
  40. err := crontab.GetCron("work_time").AddJobWithParams(jobName, spec, job)
  41. if err != nil {
  42. panic(err)
  43. }
  44. }
  45. func setDeleteSysLogCronTab() {
  46. jobName := "delete_log"
  47. job := &DeleteLogCronJob{}
  48. spec := fmt.Sprintf("%s %s %s %s %s %s", "0", "0", "3", "*", "*", "*")
  49. err := crontab.GetCron("delete_log").AddJobWithParams(jobName, spec, job)
  50. if err != nil {
  51. panic(err)
  52. }
  53. }