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
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
|
||
|
}
|