diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
index e081ca1..419e8d8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
@@ -18,14 +18,12 @@
 import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.inject.AbstractModule;
-import com.google.inject.assistedinject.FactoryModuleBuilder;
 
 class Module extends AbstractModule {
   @Override
   protected void configure() {
     bind(AMQPSession.class);
     bind(Properties.class);
-    bind(ConnectionMonitorTask.class);
     DynamicSet.bind(binder(), ChangeListener.class).to(RabbitMQManager.class);
     DynamicSet.bind(binder(), LifecycleListener.class).to(RabbitMQManager.class);
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/RabbitMQManager.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/RabbitMQManager.java
index 8121d4a..9096e00 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/RabbitMQManager.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/RabbitMQManager.java
@@ -10,6 +10,7 @@
 import org.slf4j.LoggerFactory;
 
 import java.util.Timer;
+import java.util.TimerTask;
 
 public class RabbitMQManager implements ChangeListener, LifecycleListener {
 
@@ -19,19 +20,24 @@
   private final AMQPSession session;
   private final Gson gson = new Gson();
   private final Timer monitorTimer = new Timer();
-  private final ConnectionMonitorTask monitorTask;
 
   @Inject
-  public RabbitMQManager(Properties properties, AMQPSession session, ConnectionMonitorTask monitorTask) {
+  public RabbitMQManager(Properties properties, AMQPSession session) {
     this.properties = properties;
     this.session = session;
-    this.monitorTask = monitorTask;
   }
 
   @Override
   public void start() {
     session.connect();
-    monitorTimer.schedule(monitorTask, MONITOR_FIRATTIME_DELAY, properties.getConnectionMonitorInterval());
+    monitorTimer.schedule(new TimerTask() {
+      @Override
+      public void run() {
+        if (!session.isOpen()) {
+          session.connect();
+        }
+      }
+    }, MONITOR_FIRATTIME_DELAY, properties.getConnectionMonitorInterval());
   }
 
   @Override
