diff --git a/weed/mq/client/pub_client/publisher.go b/weed/mq/client/pub_client/publisher.go
index 2bf866395..c952bcfb6 100644
--- a/weed/mq/client/pub_client/publisher.go
+++ b/weed/mq/client/pub_client/publisher.go
@@ -10,7 +10,6 @@ import (
 	"google.golang.org/grpc/credentials/insecure"
 	"log"
 	"sync"
-	"time"
 )
 
 type PublisherConfiguration struct {
@@ -63,7 +62,10 @@ func (p *TopicPublisher) Shutdown() error {
 			inputBuffer.CloseInput()
 		}
 	}
-	time.Sleep(1100 * time.Millisecond)
+
+	for _, job := range p.jobs {
+		job.wg.Wait()
+	}
 
 	return nil
 }