package nsq import ( "apsClient/conf" "apsClient/constvar" "apsClient/pkg/logx" "apsClient/pkg/nsqclient" "fmt" ) func NewConsumer(topic, channel string) (c *nsqclient.NsqConsumer, err error) { c, err = nsqclient.NewNsqConsumer(topic, channel) if err != nil { logx.Errorf("NewNsqConsumer err:%v", err) return } logx.Infof("Consume NewNsqConsumer topic:%v", topic) var handler MsgHandler switch topic { case fmt.Sprintf(constvar.NsqTopicScheduleTask, conf.Conf.NsqConf.NodeId): handler = new(ScheduleTask) case fmt.Sprintf(constvar.NsqTopicApsProcessParams, conf.Conf.NsqConf.NodeId): handler = &ProcessParamsSync{Topic: topic} case fmt.Sprintf(constvar.NsqTopicDeviceUpdate, conf.Conf.NsqConf.NodeId): handler = &DeviceUpdate{Topic: topic} case fmt.Sprintf(constvar.NsqTopicPullDataResponse, conf.Conf.NsqConf.NodeId): handler = &PullDataResponse{Topic: topic} } c.AddHandler(handler.HandleMessage) return }