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. // AsynqWorkOrder 相关消费
  21. func AsynqWorkOrder(dep AsyncDependency) *asynqsvc.Server {
  22. cfg := config.Options()
  23. srv := asynqsvc.NewServer(cfg)
  24. pref := cfg.FarmName
  25. pattern := fmt.Sprintf("%s:%s", pref, model.TaskWorkOrder)
  26. srv.Mux.HandleFunc(pattern, dep.WorkOrder.DayWorkOrder) // 工单
  27. return srv
  28. }
  29. // AsyncDependency is the dependency for worker and kafka
  30. type AsyncDependency struct {
  31. dig.In
  32. WorkOrder asynq.BizExec // BizExec 工单
  33. }