本文整理汇总了Golang中loggregator/groupedsinks.GroupedSinks.Register方法的典型用法代码示例。如果您正苦于以下问题:Golang GroupedSinks.Register方法的具体用法?Golang GroupedSinks.Register怎么用?Golang GroupedSinks.Register使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类loggregator/groupedsinks.GroupedSinks
的用法示例。
在下文中一共展示了GroupedSinks.Register方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: registerSink
func (messageRouter *messageRouter) registerSink(s sinks.Sink, activeSinks *groupedsinks.GroupedSinks) bool {
messageRouter.Lock()
defer messageRouter.Unlock()
ok := activeSinks.Register(s)
switch s.(type) {
case *sinks.DumpSink:
messageRouter.activeDumpSinksCounter++
case *sinks.SyslogSink:
messageRouter.activeSyslogSinksCounter++
case *sinks.WebsocketSink:
messageRouter.activeWebsocketSinksCounter++
go messageRouter.dumpToSink(s, activeSinks)
}
messageRouter.logger.Infof("MessageRouter: Sink with channel %v requested. Opened it.", s.Channel())
return ok
}
示例2:
var inputChan, errorChan chan *logmessage.Message
BeforeEach(func() {
fakeTimeProvider = faketimeprovider.New(time.Now())
groupedSinks = groupedsinks.NewGroupedSinks()
inputChan = make(chan *logmessage.Message)
errorChan = make(chan *logmessage.Message)
})
Describe("BroadCast", func() {
It("should send message to all registered sinks that match the appId", func(done Done) {
appId := "123"
appSink := syslog.NewSyslogSink("123", "url", loggertesthelper.Logger(), DummySyslogWriter{}, errorChan)
otherInputChan := make(chan *logmessage.Message)
groupedSinks.Register(otherInputChan, appSink)
appId = "789"
appSink = syslog.NewSyslogSink(appId, "url", loggertesthelper.Logger(), DummySyslogWriter{}, errorChan)
groupedSinks.Register(inputChan, appSink)
msg := NewMessage("test message", appId)
go groupedSinks.BroadCast(appId, msg)
Expect(<-inputChan).To(Equal(msg))
Expect(otherInputChan).To(HaveLen(0))
close(done)
})
It("should not block when sending to an appId that has no sinks", func(done Done) {