* Refactor CLI test
Extracted 3 main parts:
- parse
- run
- signal handling
* Move demonization and pid write from parse to run phase
* Move queues default from validate to setup options phase
* Add pry-byebug gem
* Drop Sidekiq::Test
* Require launcher in CLI
* Remove TODOs
a matching heartbeat record, indicating that they're no longer alive.
Added call to this new util method in the Schedule::Poller.poll_interval
method because the number of live processes is used as a multiplier for
the default wait interval. Since the value for poll_interval is
memoized this call to 'cleanup_dead_process_records' should only be
called once at startup.
We no longer have a global 'workers' set but rather a global 'processes' set. Each process has its own workers hash, keyed by thread id.
Rely as much as possible on Redis key expiration to naturally prune any lingering data. Process data only has a one minute TTL, with the heartbeat refreshing the TTL, so it will expire quickly after a process dies.