di_crontab.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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. if err := newCrontab.Bind("indicators", cs.Indicators, dependency.CrontabHub.Indicators); err != nil {
  39. panic(err)
  40. }
  41. if err := newCrontab.Bind("UpdateCowInfo", cs.UpdateCowInfo, dependency.CrontabHub.UpdateCowInfo); err != nil {
  42. panic(err)
  43. }
  44. if err := newCrontab.Bind("ImmunizationPlan", cs.ImmunizationPlan, dependency.CrontabHub.ImmunizationPlan); err != nil {
  45. panic(err)
  46. }
  47. if err := newCrontab.Bind("TwentyOnePregnantRate", cs.TwentyOnePregnantRate, dependency.CrontabHub.TwentyOnePregnantRate); err != nil {
  48. panic(err)
  49. }
  50. if err := newCrontab.Bind("SameTimePlan", cs.SameTimePlan, dependency.CrontabHub.SameTimePlan); err != nil {
  51. panic(err)
  52. }
  53. if err := newCrontab.Bind("UpdateSameTime", cs.UpdateSameTime, dependency.CrontabHub.UpdateSameTime); err != nil {
  54. panic(err)
  55. }
  56. if err := newCrontab.Bind("SystemBasicCrontab", cs.SystemBasicCrontab, dependency.CrontabHub.SystemBasicCrontab); err != nil {
  57. panic(err)
  58. }
  59. if err := newCrontab.Bind("DeleteOldOriginal", cs.DeleteOldOriginal, dependency.CrontabHub.DeleteOldOriginal); err != nil {
  60. panic(err)
  61. }
  62. if err := newCrontab.Bind("UpdateDiseaseToCalendar", cs.UpdateDiseaseToCalendar, dependency.CrontabHub.UpdateDiseaseToCalendar); err != nil {
  63. zaplog.Error("EntryCrontab", zap.Any("UpdateCowEstrus", err))
  64. panic(err)
  65. }
  66. if err := newCrontab.Bind("CowNeckRingErrorEnter", cs.CowNeckRingError, dependency.CrontabHub.CowNeckRingErrorEnter); err != nil {
  67. zaplog.Error("EntryCrontab", zap.Any("CowNeckRingErrorEnter", err))
  68. panic(err)
  69. }
  70. if err := newCrontab.Bind("UpdateCowEstrus", cs.NeckRingEstrus, dependency.CrontabHub.UpdateCowEstrus); err != nil {
  71. zaplog.Error("EntryCrontab", zap.Any("UpdateCowEstrus", err))
  72. panic(err)
  73. }
  74. if err := newCrontab.Bind("NeckRingCalculate", cs.NeckRingCalculate, dependency.CrontabHub.NeckRingCalculate); err != nil {
  75. zaplog.Error("EntryCrontab", zap.Any("NeckRingCalculate", err))
  76. panic(err)
  77. }
  78. if err := newCrontab.Bind("NeckRingMerge", cs.NeckRingMerge, dependency.CrontabHub.NeckRingOriginalMerge); err != nil {
  79. zaplog.Error("EntryCrontab", zap.Any("NeckRingOriginalMergeData", err))
  80. panic(err)
  81. }
  82. if err := newCrontab.Bind("NeckRingEstrusWarning", cs.NeckRingEstrusWarning, dependency.CrontabHub.NeckRingEstrusWarning); err != nil {
  83. zaplog.Error("EntryCrontab", zap.Any("NeckRingEstrusWarning", err))
  84. panic(err)
  85. }
  86. /*if err := newCrontab.Bind("NeckRingHealthWarning", cs.NeckRingHealthWarning, dependency.CrontabHub.NeckRingHealthWarning); err != nil {
  87. zaplog.Error("EntryCrontab", zap.Any("NeckRingHealthWarning", err))
  88. panic(err)
  89. }*/
  90. if err := newCrontab.Bind("UpdatePenBehavior", cs.UpdatePenBehavior, dependency.CrontabHub.UpdatePenBehavior); err != nil {
  91. zaplog.Error("EntryCrontab", zap.Any("UpdatePenBehavior", err))
  92. panic(err)
  93. }
  94. if err := newCrontab.Bind("UpdatePenBehaviorDaily", cs.UpdatePenBehaviorDaily, dependency.CrontabHub.UpdatePenBehaviorDaily); err != nil {
  95. zaplog.Error("EntryCrontab", zap.Any("UpdatePenBehaviorDaily", err))
  96. panic(err)
  97. }
  98. if err := newCrontab.Bind("UpdateMilkOriginal", cs.UpdateMilkOriginal, dependency.CrontabHub.UpdateMilkOriginal); err != nil {
  99. zaplog.Error("EntryCrontab", zap.Any("UpdateMilkOriginal", err))
  100. panic(err)
  101. }
  102. if err := newCrontab.Bind("UpdateActiveHabit", cs.InsertMilkDaily, dependency.CrontabHub.InsertMilkDaily); err != nil {
  103. zaplog.Error("EntryCrontab", zap.Any("InsertMilkDaily", err))
  104. panic(err)
  105. }
  106. /*err = newCrontab.Bind("GenerateWorkOrder", cs.GenerateWorkOrder, dependency.CrontabHub.GenerateAsynqWorkOrder)
  107. if err != nil {
  108. panic(err)
  109. }
  110. err = newCrontab.Bind("CowPregnant", cs.CowPregnant, dependency.CrontabHub.CowPregnant)
  111. if err != nil {
  112. panic(err)
  113. }*/
  114. return newCrontab
  115. }