Browse Source

Fix ticker leak in campaign manager message push

Kailash Nadh 5 năm trước cách đây
mục cha
commit
c2613d1030
1 tập tin đã thay đổi với 4 bổ sung1 xóa
  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.
 // PushMessage pushes a Message to be sent out by the workers.
 func (m *Manager) PushMessage(msg Message) error {
 func (m *Manager) PushMessage(msg Message) error {
+	t := time.NewTicker(time.Second * 3)
+	defer t.Stop()
+
 	select {
 	select {
 	case m.msgQueue <- msg:
 	case m.msgQueue <- msg:
-	case <-time.After(time.Second * 3):
+	case <-t.C:
 		m.logger.Println("message push timed out: %'s'", msg.Subject)
 		m.logger.Println("message push timed out: %'s'", msg.Subject)
 		return errors.New("message push timed out")
 		return errors.New("message push timed out")
 	}
 	}