コード例 #1
0
ファイル: facade_factory.go プロジェクト: jmptrader/firempq
func CreateFacade() *ServiceFacade {
	lock.Lock()
	defer lock.Unlock()
	if facade == nil {
		facade = NewFacade(db.GetDatabase())
	}
	return facade
}
コード例 #2
0
ファイル: pqueue.go プロジェクト: jmptrader/firempq
func LoadPQueue(desc *common.ServiceDescription) (iface.ISvc, error) {
	config := &PQConfig{}
	database := db.GetDatabase()
	err := database.LoadServiceConfig(config, common.MakeServiceId(desc))
	if err != nil {
		return nil, err
	}
	pq := initPQueue(desc, config)
	return pq, nil
}
コード例 #3
0
ファイル: pqueue.go プロジェクト: jmptrader/firempq
func initPQueue(desc *common.ServiceDescription, config *PQConfig) *PQueue {
	pq := PQueue{
		desc:               desc,
		config:             config,
		msgMap:             make(map[string]*PQMessage),
		availMsgs:          structs.NewActiveQueues(config.MaxPriority),
		expireHeap:         structs.NewIndexHeap(),
		inFlightHeap:       structs.NewIndexHeap(),
		database:           db.GetDatabase(),
		newMsgNotification: make(chan bool),
		msgSerialNumber:    0,
		serviceId:          common.MakeServiceId(desc),
	}

	pq.loadAllMessages()
	return &pq
}
コード例 #4
0
ファイル: pqueue_test.go プロジェクト: jmptrader/firempq
func CreateTestQueue() *PQueue {
	ldb := db.GetDatabase()
	ldb.FlushCache()
	desc := common.NewServiceDescription(common.STYPE_PRIORITY_QUEUE, 54634673456, "name")
	return NewPQueue(desc, 100, 1000)
}