Add ConnectionMonitorTask class
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/ConnectionMonitorTask.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/ConnectionMonitorTask.java
new file mode 100644
index 0000000..c44cf18
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/ConnectionMonitorTask.java
@@ -0,0 +1,24 @@
+package com.googlesource.gerrit.plugins.rabbitmq;
+
+import com.google.inject.Inject;
+
+import java.util.TimerTask;
+
+public class ConnectionMonitorTask extends TimerTask {
+
+  private final AMQPSession.Factory sessionFactory;
+
+  @Inject
+  public ConnectionMonitorTask(AMQPSession.Factory sessionFactory) {
+    this.sessionFactory = sessionFactory;
+  }
+
+  @Override
+  public void run() {
+    AMQPSession session = sessionFactory.create();
+    if (!session.isOpen()) {
+      session.connect();
+    }
+  }
+
+}
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 4067d5c..e9ec6a6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
@@ -24,6 +24,7 @@
   @Override
   protected void configure() {
     bind(AMQPSession.class);
+    bind(ConnectionMonitorTask.class);
     DynamicSet.bind(binder(), ChangeListener.class).to(PluginChangeListener.class);
     DynamicSet.bind(binder(), LifecycleListener.class).to(PluginChangeListener.class);
     install(new FactoryModuleBuilder().build(AMQPSession.Factory.class));