package Engine import ( "fmt" "leit.com/leit_seat_aps/common" conf "leit.com/leit_seat_aps/config" "leit.com/leit_seat_aps/db" "leit.com/leit_seat_aps/glog" "time" ) // 启动打印引擎 func RunEngine(conf *conf.EnvConfig) { // 初始化任务读取和保存通道 var ( inChan = make(chan db.PrintTask, 1000) // 待打印任务管道 printChan = make(chan db.PrintTask, 1000) // 表单串行打印管道 outChan = make(chan db.PrintTask, 1000) // 打印完待保存任务管道 prnDict = make(map[string]*Printer) p *Printer err error ) // 获取打印机列表并启动打印机 if err = GetPrinterDict(conf, prnDict); err != nil { glog.Infoln("Engine: failed to get the printer dict due to", err) return } // 启动打印任务获取服务 StartFetcher(conf, inChan) // 启动打印任务调度服务 StartScheduler(inChan, prnDict) // 启动每台打印机的打印服务 for _, p = range prnDict { StartPrinter(p, conf, printChan, outChan) } // 启动串行打印表单的服务 StartSheetSerialPrintService(prnDict, printChan, outChan) // 启动打印任务保存服务 StartSaver(conf, outChan) } // 获取所有激活的打印机列表 func GetPrinterDict(conf *conf.EnvConfig, prnDict map[string]*Printer) error { var ( printerList []db.Printertab p db.Printertab err error ) printer := new(db.Printertab) if printerList, err = printer.GetPrinterList(conf); err != nil { glog.Infoln("GetPrinterDict: Faile to get the printer list due to: ", err) return err } for _, p = range printerList { var prn = Printer{} prn.Create(p) prnDict[prn.PrinterId] = &prn } return nil } //删除一个礼拜前的打印消息 func DelPrinterInfo() { tick := time.Tick(5 * time.Second) //tick := time.Tick(72 * time.Hour) fmt.Println("开始执行") for { select { case <-tick: //执行删除操作 before7day := time.Now().AddDate(0, 0, -7) fmt.Printf("before7day:%s", before7day) timestr := common.TimeFormat(before7day, "yyyyMMddHHmmss") printer := new(db.Printheadtab) printer.Finr = db.G_FINR printer.DelBefore7DayRecords(timestr) } } }