diff options
Diffstat (limited to 'config/initializers/sidekiq_cluster.rb')
-rw-r--r-- | config/initializers/sidekiq_cluster.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/config/initializers/sidekiq_cluster.rb b/config/initializers/sidekiq_cluster.rb new file mode 100644 index 00000000000..cbf8caef706 --- /dev/null +++ b/config/initializers/sidekiq_cluster.rb @@ -0,0 +1,18 @@ +if ENV['ENABLE_SIDEKIQ_CLUSTER'] && Gitlab.ee? + Thread.new do + Thread.current.abort_on_exception = true + + parent = Process.ppid + + loop do + sleep(5) + + # In cluster mode it's possible that the master process is SIGKILL'd. In + # this case the parent PID changes and we need to terminate ourselves. + if Process.ppid != parent + Process.kill(:TERM, Process.pid) + break + end + end + end +end |