di_asynq.go 859 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package dep
  2. import (
  3. "fmt"
  4. "kpt-pasture/config"
  5. "kpt-pasture/model"
  6. "kpt-pasture/module/asynq"
  7. "kpt-pasture/service/asynqsvc"
  8. "go.uber.org/dig"
  9. )
  10. func DIAsynqWorkOrder() (out *asynqsvc.Server) {
  11. container := DI()
  12. if err := container.Provide(AsynqWorkOrder); err != nil {
  13. panic(err)
  14. }
  15. if err := container.Invoke(func(c *asynqsvc.Server) { out = c }); err != nil {
  16. panic(err)
  17. }
  18. return
  19. }
  20. // AsyncDependency is the dependency for worker and kafka
  21. type AsyncDependency struct {
  22. dig.In
  23. WorkOrder asynq.BizExec // BizExec 工单
  24. }
  25. // AsynqWorkOrder 相关消费
  26. func AsynqWorkOrder(dep AsyncDependency) *asynqsvc.Server {
  27. cfg := config.Options()
  28. srv := asynqsvc.NewServer(cfg)
  29. pref := cfg.FarmName
  30. pattern := fmt.Sprintf("%s:%s", pref, model.TaskWorkOrder)
  31. srv.Mux.HandleFunc(pattern, dep.WorkOrder.DayWorkOrder) // 工单
  32. return srv
  33. }