Close database connections when ending threads.
authorTom Clegg <tom@curoverse.com>
Tue, 27 Dec 2016 20:30:03 +0000 (15:30 -0500)
committerTom Clegg <tom@curoverse.com>
Tue, 27 Dec 2016 21:03:08 +0000 (16:03 -0500)
services/api/app/middlewares/rack_socket.rb
services/api/lib/eventbus.rb

index 8f82e585df07f431650270997325be9d6c7cf448..08d163e6e24d547f966513dc73f288c92f9ef679 100644 (file)
@@ -44,18 +44,26 @@ class RackSocket
         if forked && EM.reactor_running?
           EM.stop
         end
-        Thread.new {
-          EM.run
-        }
+        Thread.new do
+          begin
+            EM.run
+          ensure
+            ActiveRecord::Base.connection.close
+          end
+        end
         die_gracefully_on_signal
       end
     else
       # faciliates debugging
       Thread.abort_on_exception = true
       # just spawn a thread and start it up
-      Thread.new {
-        EM.run
-      }
+      Thread.new do
+        begin
+          EM.run
+        ensure
+          ActiveRecord::Base.connection.close
+        end
+      end
     end
 
     # Create actual handler instance object from handler class.
index cb65c7f30c7da92bb54f8ce66fd2eb72e9ddc5c7..5e413d5cabf580688693754af4201497f2d79e0a 100644 (file)
@@ -316,6 +316,7 @@ class EventBus
         @mtx.synchronize do
           @connection_count -= 1
         end
+        ActiveRecord::Base.connection.close
       end
     end