about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAkihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>2017-04-22 02:24:31 +0900
committerEugen <eugen@zeonfederated.com>2017-04-21 19:24:31 +0200
commit16cd648181f892b075b0be9bb9941f9a28b25ee2 (patch)
tree725aeae4b326b216f756b518221f0ca8a4f86a4b
parent53b21ac1cde533c068f3b3efad7ab8ba70a0dad2 (diff)
Allow to listen Unix socket (#2085)
* Allow puma to listen Unix socket

* streaming: Show the whole listening address instead of the port

Port is not always appropriate (e.g. Unix socket)

* streaming: Close server before exiting

This change especially allows to remove Unix socket before exiting.
-rw-r--r--config/puma.rb4
-rw-r--r--streaming/index.js10
2 files changed, 13 insertions, 1 deletions
diff --git a/config/puma.rb b/config/puma.rb
index 7586536f4..eb8fc6a8e 100644
--- a/config/puma.rb
+++ b/config/puma.rb
@@ -1,6 +1,10 @@
 threads_count = ENV.fetch('MAX_THREADS') { 5 }.to_i
 threads threads_count, threads_count
 
+if ENV['SOCKET'] then
+  bind 'unix://' + ENV['SOCKET']
+end
+
 port        ENV.fetch('PORT') { 3000 }
 environment ENV.fetch('RAILS_ENV') { 'development' }
 workers     ENV.fetch('WEB_CONCURRENCY') { 2 }
diff --git a/streaming/index.js b/streaming/index.js
index 8395c9cf8..c7959b306 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -328,6 +328,14 @@ if (cluster.isMaster) {
 
   server.listen(process.env.PORT || 4000, () => {
     log.level = process.env.LOG_LEVEL || 'verbose'
-    log.info(`Starting streaming API server worker on port ${server.address().port}`)
+    log.info(`Starting streaming API server worker on ${server.address()}`)
   })
+
+  process.on('SIGINT', exit)
+  process.on('SIGTERM', exit)
+  process.on('exit', exit)
+
+  function exit() {
+    server.close()
+  }
 }