arturictus / sidekiq_alive

Liveness probe for Sidekiq in Kubernetes deployments
MIT License
189 stars 57 forks source link

Running with Sidekiqswarm #66

Closed geoffharcourt closed 2 years ago

geoffharcourt commented 2 years ago

Hi! This is a great gem, thank you for your work on it.

We are trying out Sidekiqswarm and it appears that when run with sidekiq_alive, there's one exception per worker process after the first one as each process attempts to bind to the port. Is there a way to only have one web server boot or to have different ports get assigned to each worker process?

arturictus commented 2 years ago

Hi @geoffharcourt, That's an interesting problem to solve :). I would have to investigate the issue further to give you a better response, and since I do not use Sidekiq enterprise is hard for me to test.

But as a quick answer I can imagine few solutions:

a) Not run the HTTP server and execute a ruby script to ask redis, that would imply

b) run Http Server in an indepent pod and script to request that pod

c) Start server in the parent process https://github.com/mperham/sidekiq/wiki/Ent-Multi-Process#signals-and-controlling-a-swarm

d) Initialize server in the on(:fork) callback Maybe this one would work out of the box: https://github.com/mperham/sidekiq/wiki/Ent-Multi-Process#application-preload

Any other solutions that you can think of?

geoffharcourt commented 2 years ago

Hey @arturictus we're still thinking through what we'd want to do here.