|
|
- 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)
- }
- }
- }
|