|
|
- package Engine
-
- import (
- "LAPP_SJA_ME/conf"
- "LAPP_SJA_ME/web/middleware/glog"
- "LAPP_SJA_ME/web/models"
- "time"
- )
-
- // 启动打印任务提取服务
- // conf Config.EnvConfig 配置文件
- // c chan Model.PrintTask 任务通道->Scheduler
- func StartFetcher(conf *conf.EnvConfig, c chan models.PrintTask) {
- var (
- prnlist []string
- err error
- )
- printers := models.Printertab{}
- prnlist, err = printers.GetPrinterIdList(conf)
- if err != nil {
- glog.InfoExtln("Fetcher","Fetcher: failed to get printer id list due to ", err)
- return
- }
-
- // 启动Goroutine不间断读取打印任务
- go func(){
- var(
- taskList []models.PrintTask
- stalist []string
- err error
- )
- // 首先加载pending 未打印的任务
- stalist =[]string{"P"}
- task := new(models.PrintTask)
- taskList, err = task.GetPrintTaskList(stalist, prnlist,conf)
- if err != nil {
- glog.InfoExtln("Fetcher","Failed to read the task due to : ", err)
- }
- for _, t := range taskList {
- c <- t
- }
-
- // 循环加载新建的打印任务
- stalist =[]string{"N", "R"}
- for {
- taskList, err := task.GetPrintTaskList(stalist, prnlist,conf)
- if err != nil {
- glog.InfoExtln("Fetcher","Failed to read the task due to : ", err)
- }
- for _, t := range taskList {
- c <- t
- task.ChangePrintTaskStatus(t, "P") // 将任务状态置为处理中
- }
- time.Sleep(time.Duration(conf.ReadTaskInterval) * time.Second)
- }
- }()
- }
|