本文整理匯總了Golang中github.com/mission-liao/dingo.Meta類的典型用法代碼示例。如果您正苦於以下問題:Golang Meta類的具體用法?Golang Meta怎麽用?Golang Meta使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Meta類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Done
func (me *backend) Done(meta dingo.Meta) (err error) {
var v int
err = func() (err error) {
var (
ok bool
ids map[string]int
)
me.ridsLock.Lock()
defer me.ridsLock.Unlock()
if ids, ok = me.rids[meta.Name()]; ok {
v, ok = ids[meta.ID()]
delete(ids, meta.ID())
}
if !ok {
err = errors.New("store id not found")
return
}
return
}()
if err == nil {
err = me.stores.Stop(v)
}
return
}
示例2: Send
func (me *broker) Send(id dingo.Meta, body []byte) (err error) {
conn := me.pool.Get()
defer conn.Close()
_, err = conn.Do("LPUSH", fmt.Sprintf("%v.%v", _redisTaskQueue, id.Name()), body)
if err != nil {
return
}
return
}
示例3: Poll
func (me *backend) Poll(meta dingo.Meta) (reports <-chan []byte, err error) {
quit, done, idx := me.stores.New(0)
me.ridsLock.Lock()
defer me.ridsLock.Unlock()
if v, ok := me.rids[meta.Name()]; ok {
v[meta.ID()] = idx
} else {
me.rids[meta.Name()] = map[string]int{meta.ID(): idx}
}
r := make(chan []byte, 10)
reports = r
go me._store_routine_(quit, done, me.stores.Events(), r, meta)
return
}
示例4: getConsumerTag
func getConsumerTag(meta dingo.Meta) string {
return fmt.Sprintf("dingo.consumer.%s.%s", meta.Name(), meta.ID())
}
示例5: getRoutingKey
func getRoutingKey(meta dingo.Meta) string {
return fmt.Sprintf("dingo.rkey.%s.%s", meta.Name(), meta.ID())
}
示例6: getQueueName
func getQueueName(meta dingo.Meta) string {
return fmt.Sprintf("dingo.q.%s.%s", meta.Name(), meta.ID())
}