You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.9 KiB

2 months ago
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
}