di_crontab.go 4.2 KB

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