@@ -143,7 +143,9 @@ func (p *Publisher) Publish(topic string, messages ...*message.Message) error {
143143 return ErrPublisherClosed
144144 }
145145
146- ctx , cancel := context .WithTimeout (context .Background (), p .config .PublishTimeout )
146+ deadline := time .Now ().Add (p .config .PublishTimeout )
147+
148+ ctx , cancel := context .WithDeadline (context .Background (), deadline )
147149 defer cancel ()
148150
149151 t , err := p .topic (ctx , topic )
@@ -152,7 +154,7 @@ func (p *Publisher) Publish(topic string, messages ...*message.Message) error {
152154 }
153155
154156 for _ , msg := range messages {
155- err = p .publishMessage (t , msg , topic )
157+ err = p .publishMessage (t , msg , topic , deadline )
156158 if err != nil {
157159 return err
158160 }
@@ -161,8 +163,8 @@ func (p *Publisher) Publish(topic string, messages ...*message.Message) error {
161163 return nil
162164}
163165
164- func (p * Publisher ) publishMessage (t * pubsub.Topic , msg * message.Message , topic string ) error {
165- ctx , cancel := context .WithTimeout (msg .Context (), p . config . PublishTimeout )
166+ func (p * Publisher ) publishMessage (t * pubsub.Topic , msg * message.Message , topic string , deadline time. Time ) error {
167+ ctx , cancel := context .WithDeadline (msg .Context (), deadline )
166168 defer cancel ()
167169
168170 logFields := watermill.LogFields {
0 commit comments