@@ -77,13 +77,13 @@ func (w *Worker) startConsumer() (err error) {
7777 }
7878
7979 w .tasks , err = w .channel .Consume (
80- q .Name , // queue
81- w .opts .tag , // consumer
82- false , // auto-ack
83- false , // exclusive
84- false , // no-local
85- false , // no-wait
86- nil , // args
80+ q .Name , // queue
81+ w .opts .tag , // consumer
82+ w . opts . autoAck , // auto-ack
83+ false , // exclusive
84+ false , // no-local
85+ false , // no-wait
86+ nil , // args
8787 )
8888
8989 if err != nil {
@@ -153,21 +153,22 @@ func (w *Worker) Run(task core.QueuedMessage) error {
153153}
154154
155155// Shutdown worker
156- func (w * Worker ) Shutdown () error {
156+ func (w * Worker ) Shutdown () ( err error ) {
157157 if ! atomic .CompareAndSwapInt32 (& w .stopFlag , 0 , 1 ) {
158158 return queue .ErrQueueShutdown
159159 }
160160
161161 w .stopOnce .Do (func () {
162162 close (w .stop )
163- if err : = w .channel .Cancel (w .opts .tag , true ); err != nil {
164- w .opts .logger .Error (err )
163+ if err = w .channel .Cancel (w .opts .tag , true ); err != nil {
164+ w .opts .logger .Error ("consumer cancel failed:" , err )
165165 }
166- if err : = w .conn .Close (); err != nil {
167- w .opts .logger .Error (err )
166+ if err = w .conn .Close (); err != nil {
167+ w .opts .logger .Error ("AMQP connection close error:" , err )
168168 }
169169 })
170- return nil
170+
171+ return err
171172}
172173
173174// Queue send notification to queue
@@ -214,6 +215,9 @@ loop:
214215 }
215216 var data queue.Job
216217 _ = json .Unmarshal (task .Body , & data )
218+ if ! w .opts .autoAck {
219+ task .Ack (w .opts .autoAck )
220+ }
217221 return & data , nil
218222 case <- time .After (1 * time .Second ):
219223 if clock == 5 {
0 commit comments