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.
75 lines
2.9 KiB
75 lines
2.9 KiB
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
|
|
}
|
|
|