package consumer import ( "github.com/streadway/amqp" "matchmaking-system/internal/conf" ) var ( ConsumerEntrustMq *ChanEntrustStatus ConsumerPositionMq *ChanPositionStatus ) // Consumer // @Description: type Consumer struct { Entrust *ConsumerEntrust Position *ConsumerPosition } // NewConsumer // // @Description: 初始化消费者 // @param f // @param con // @return *Consumer // @return error func NewConsumer(f *conf.Data, con *amqp.Connection) (*Consumer, error) { // 初始化消费者队列管道 ConsumerEntrustMq = &ChanEntrustStatus{ ShareUsMq: make(chan []byte), // 美股-生产者消息队列 ShareMysMq: make(chan []byte), // 马股-生产者消息队列 ShareIdnMq: make(chan []byte), // 印尼股-生产者消息队列 ShareThaMq: make(chan []byte), // 泰国股-生产者消息队列 ShareInrMq: make(chan []byte), // 印度股-生产者消息队列 ContractMq: make(chan []byte), // 合约-生产者消息队列 ShareSgdMq: make(chan []byte), // 新加坡股-生产者消息队列 ShareHkdMq: make(chan []byte), // 港股-生产者消息队列 ShareGbxMq: make(chan []byte), // 英股-生产者消息队列 ShareFurMq: make(chan []byte), // 法股-生产者消息队列 ShareEurMq: make(chan []byte), // 德股-生产者消息队列 ShareBrlMq: make(chan []byte), // 巴西股-生产者消息队列 ShareJpyMq: make(chan []byte), // 日股-生产者消息队列 ForexMq: make(chan []byte), // 外汇-生产者消息队列 OptionInrMq: make(chan []byte)} // 期权(印度)-生产者消息队列 ConsumerPositionMq = &ChanPositionStatus{ ShareUsMq: make(chan []byte), // 美股-消费者消息队列 ShareMysMq: make(chan []byte), // 马股-消费者消息队列 ShareIdnMq: make(chan []byte), // 印尼股-消费者消息队列 ShareThaMq: make(chan []byte), // 泰股-消费者消息队列 ShareInrMq: make(chan []byte), // 印度-消费者消息队列 ContractMq: make(chan []byte), // 合约-消费者消息队列 ForexMq: make(chan []byte), // 外汇-消费者消息队列 ShareSgdMq: make(chan []byte), // 新加坡-消费者消息队列 ShareHkdMq: make(chan []byte), // 港股-消费者消息队列 ShareGbxMq: make(chan []byte), // 英股-消费者消息队列 ShareFurMq: make(chan []byte), // 法股-消费者消息队列 ShareEurMq: make(chan []byte), // 德股-消费者消息队列 ShareBrlMq: make(chan []byte), // 巴西股-消费者消息队列 ShareJpyMq: make(chan []byte), // 日股-消费者消息队列 OptionInrMq: make(chan []byte)} // 期权(印度)-消费者消息队列 // 初始化持仓消费者消息队列通道 entrust, err := NewEntrust(f, con) if err != nil { return nil, err } // 初始化平仓消费者消息队列通道 position, err := NewPosition(f, con) if err != nil { return nil, err } return &Consumer{Entrust: entrust, Position: position}, nil }