di_crontab.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package dep
  2. import (
  3. "kpt-pasture/config"
  4. "kpt-pasture/module/crontab"
  5. "gitee.com/xuyiping_admin/pkg/logger/zaplog"
  6. "go.uber.org/zap"
  7. "go.uber.org/dig"
  8. "gitee.com/xuyiping_admin/pkg/cron"
  9. prom "github.com/prometheus/client_golang/prometheus"
  10. )
  11. var DataCenterCrontabCounterVec = prom.NewCounterVec(
  12. prom.CounterOpts{
  13. Namespace: "kpt-pasture",
  14. Subsystem: "crontab",
  15. Name: "crontab",
  16. },
  17. []string{"name"},
  18. )
  19. func DICrontabService() (out *cron.Crontab) {
  20. container := DI()
  21. if err := container.Provide(EntryCrontab); err != nil {
  22. panic(err)
  23. }
  24. if err := container.Invoke(func(c *cron.Crontab) { out = c }); err != nil {
  25. panic(err)
  26. }
  27. return
  28. }
  29. // CrontabDependency 依赖注入结构体
  30. type CrontabDependency struct {
  31. dig.In
  32. CrontabHub crontab.Crontab // 定时任务
  33. }
  34. func EntryCrontab(dependency CrontabDependency) *cron.Crontab {
  35. cfg := config.Options()
  36. cs := cfg.CronSetting
  37. newCrontab := cron.NewCrontab(DataCenterCrontabCounterVec)
  38. err := newCrontab.Bind("indicators", cs.Indicators, dependency.CrontabHub.Indicators)
  39. if err != nil {
  40. panic(err)
  41. }
  42. err = newCrontab.Bind("UpdateCowInfo", cs.UpdateCowInfo, dependency.CrontabHub.UpdateCowInfo)
  43. if err != nil {
  44. panic(err)
  45. }
  46. err = newCrontab.Bind("ImmunizationPlan", cs.ImmunizationPlan, dependency.CrontabHub.ImmunizationPlan)
  47. if err != nil {
  48. panic(err)
  49. }
  50. err = newCrontab.Bind("SameTimePlan", cs.SameTimePlan, dependency.CrontabHub.SameTimePlan)
  51. if err != nil {
  52. panic(err)
  53. }
  54. err = newCrontab.Bind("UpdateSameTime", cs.UpdateSameTime, dependency.CrontabHub.UpdateSameTime)
  55. if err != nil {
  56. panic(err)
  57. }
  58. err = newCrontab.Bind("SystemBasicCrontab", cs.SystemBasicCrontab, dependency.CrontabHub.SystemBasicCrontab)
  59. if err != nil {
  60. panic(err)
  61. }
  62. err = newCrontab.Bind("DeleteOldOriginal", cs.DeleteOldOriginal, dependency.CrontabHub.DeleteOldOriginal)
  63. if err != nil {
  64. panic(err)
  65. }
  66. err = newCrontab.Bind("UpdateCowEstrus", cs.NeckRingEstrus, dependency.CrontabHub.UpdateCowEstrus)
  67. if err != nil {
  68. zaplog.Error("EntryCrontab", zap.Any("UpdateCowEstrus", err))
  69. panic(err)
  70. }
  71. err = newCrontab.Bind("NeckRingCalculate", cs.NeckRingCalculate, dependency.CrontabHub.NeckRingCalculate)
  72. if err != nil {
  73. zaplog.Error("EntryCrontab", zap.Any("NeckRingCalculate", err))
  74. panic(err)
  75. }
  76. err = newCrontab.Bind("NeckRingMerge", cs.NeckRingMerge, dependency.CrontabHub.NeckRingOriginalMergeData)
  77. if err != nil {
  78. zaplog.Error("EntryCrontab", zap.Any("NeckRingOriginalMergeData", err))
  79. panic(err)
  80. }
  81. /*err = newCrontab.Bind("GenerateWorkOrder", cs.GenerateWorkOrder, dependency.CrontabHub.GenerateAsynqWorkOrder)
  82. if err != nil {
  83. panic(err)
  84. }
  85. err = newCrontab.Bind("CowPregnant", cs.CowPregnant, dependency.CrontabHub.CowPregnant)
  86. if err != nil {
  87. panic(err)
  88. }*/
  89. return newCrontab
  90. }