Queue flushing

This commit is contained in:
2014-09-24 19:37:33 +04:00
parent 9d6d240bbc
commit 12b3a12c51
3 changed files with 41 additions and 0 deletions
+18
View File
@@ -17,6 +17,10 @@ type (
Queue string
Message []byte
}
MessageDump struct {
Queue string `json:"queue"`
Message string `json:"message"`
}
)
func New(st *storage.Storage) *Hub {
@@ -61,6 +65,20 @@ func (h *Hub) Sub(s *Subscription) {
h.subscribers = append(h.subscribers, s)
}
func (h *Hub) Flush(queues []string) (messages []MessageDump) {
for _, queue := range queues {
for _, msg := range h.storage.Flush(queue) {
messages = append(messages, MessageDump{queue, string(msg)})
}
}
if messages == nil {
messages = []MessageDump{}
}
return
}
func (h *Hub) Info() map[string]map[string]uint {
info := make(map[string]map[string]uint)