浏览代码

Fix ticker leak in campaign manager message push

Kailash Nadh 5 年之前
父节点
当前提交
c2613d1030
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      internal/manager/manager.go

+ 4 - 1
internal/manager/manager.go

@@ -157,9 +157,12 @@ func (m *Manager) AddMessenger(msg messenger.Messenger) error {
 
 // PushMessage pushes a Message to be sent out by the workers.
 func (m *Manager) PushMessage(msg Message) error {
+	t := time.NewTicker(time.Second * 3)
+	defer t.Stop()
+
 	select {
 	case m.msgQueue <- msg:
-	case <-time.After(time.Second * 3):
+	case <-t.C:
 		m.logger.Println("message push timed out: %'s'", msg.Subject)
 		return errors.New("message push timed out")
 	}