timer.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package initialize
  2. import (
  3. "fmt"
  4. "go.uber.org/zap"
  5. orderservice "wails-app/internal/modules/order/service"
  6. "wails-app/internal/task"
  7. "github.com/robfig/cron/v3"
  8. "wails-app/internal/global"
  9. )
  10. func Timer() {
  11. go func() {
  12. var option []cron.Option
  13. option = append(option, cron.WithSeconds())
  14. // 清理DB定时任务
  15. _, err := global.GVA_Timer.AddTaskByFunc("ClearDB", "@daily", func() {
  16. err := task.ClearTable(global.GVA_DB) // 定时任务方法定在task文件包中
  17. if err != nil {
  18. fmt.Println("timer error:", err)
  19. }
  20. }, "定时清理数据库【日志,黑名单】内容", option...)
  21. if err != nil {
  22. fmt.Println("add timer error:", err)
  23. }
  24. // 出口自助订单兜底查单:确认到账并自动结算、开闸(ADR-0002 查单为主)
  25. _, err = global.GVA_Timer.AddTaskByFunc("ExitKioskConfirmOrders", "@every 30s", func() {
  26. orderSvc := orderservice.NewOrderService()
  27. confirmed, expired, err := orderSvc.ConfirmPendingOrders()
  28. if err != nil {
  29. global.GVA_LOG.Warn("出口自助订单查单任务失败", zap.Int("confirmed", confirmed), zap.Error(err))
  30. } else if confirmed > 0 || expired > 0 {
  31. global.GVA_LOG.Info("出口自助订单查单任务", zap.Int("confirmed", confirmed), zap.Int64("expired", expired))
  32. }
  33. }, "出口自助扫码支付订单兜底查单", option...)
  34. if err != nil {
  35. fmt.Println("add timer error:", err)
  36. }
  37. // 其他定时任务定在这里 参考上方使用方法
  38. //_, err := global.GVA_Timer.AddTaskByFunc("定时任务标识", "corn表达式", func() {
  39. // 具体执行内容...
  40. // ......
  41. //}, option...)
  42. //if err != nil {
  43. // fmt.Println("add timer error:", err)
  44. //}
  45. }()
  46. }