package dep import ( "fmt" "kpt-pasture/config" "kpt-pasture/model" "kpt-pasture/module/asynq" "kpt-pasture/service/asynqsvc" "go.uber.org/dig" ) func DIAsynqWorkOrder() (out *asynqsvc.Server) { container := DI() if err := container.Provide(AsynqWorkOrder); err != nil { panic(err) } if err := container.Invoke(func(c *asynqsvc.Server) { out = c }); err != nil { panic(err) } return } // AsyncDependency is the dependency for worker and kafka type AsyncDependency struct { dig.In WorkOrder asynq.BizExec // BizExec 工单 } // AsynqWorkOrder 相关消费 func AsynqWorkOrder(dep AsyncDependency) *asynqsvc.Server { cfg := config.Options() srv := asynqsvc.NewServer(cfg) pref := cfg.FarmName pattern := fmt.Sprintf("%s:%s", pref, model.TaskWorkOrder) srv.Mux.HandleFunc(pattern, dep.WorkOrder.DayWorkOrder) // 工单 return srv }