广汽安道拓Acura项目MES后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
1.7 KiB

3 years ago
3 years ago
3 years ago
3 years ago
  1. package task
  2. import (
  3. qmsvr "LAPP_ACURA_MOM_BACKEND/services/qm"
  4. qmmodel "LAPP_ACURA_MOM_BACKEND/models/qm"
  5. "LAPP_ACURA_MOM_BACKEND/web/middleware/glog"
  6. "context"
  7. "time"
  8. )
  9. //仓库
  10. var recChan = make(chan qmmodel.ReclinerReclst, 100) //定义一个调度任务通道
  11. var printNum = 50
  12. func CreateRecPrintTaskTick() {
  13. tick := time.Tick(1 * time.Second)
  14. for {
  15. select {
  16. case <-tick:
  17. CreateRecPrintTask()
  18. }
  19. }
  20. }
  21. /****查询要打印的任务**********/
  22. func CreateRecPrintTask() {
  23. //创建继承Baxkground的子节点Context
  24. ctx, cancel := context.WithCancel(context.Background())
  25. defer cancel()
  26. go doTaskPrintRec(ctx)
  27. data := make([]qmmodel.ReclinerReclst, 0)
  28. recList := make([]int, 0)
  29. //第一步,查询要打印的数据
  30. var serviceOfRec = qmsvr.NewReclinerReclstService()
  31. data, err := serviceOfRec.SelectUnPrint(printNum)
  32. if err != nil {
  33. glog.InfoExtln("返修错误", "err:", err)
  34. return
  35. }
  36. if len(data) == 0 {
  37. return
  38. }
  39. //锁定
  40. for _, v := range data {
  41. recList = append(recList, v.RecNr)
  42. }
  43. err = serviceOfRec.UpdateUnPrint(recList)
  44. if err != nil {
  45. glog.InfoExtln("返修错误", "err:", err)
  46. return
  47. }
  48. //第二步,把所有的服务调度放到channel
  49. for _, v := range data {
  50. recChan <- v
  51. }
  52. }
  53. /********打印逻辑************/
  54. func doTaskPrintRec(ctx context.Context) {
  55. //第三步,启动协程,从channel里读取数据
  56. for {
  57. select {
  58. case <-ctx.Done():
  59. return
  60. case task, ok := <-recChan:
  61. if !ok {
  62. return //停机退出
  63. }
  64. var serviceOfRec = qmsvr.NewReclinerReclstService()
  65. err := serviceOfRec.CreateRecPrintInfo(task)
  66. if err !=nil{
  67. glog.InfoExtln("返修打印错误日志","err:",err)
  68. continue
  69. }
  70. }
  71. }
  72. }