di_asynq.go 776 B

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