• Nick Thomas's avatar
    sidekiq: terminate child processes at shutdown · f0c52df5
    Nick Thomas authored
    Sidekiq jobs frequently spawn long-lived child processes to do work.
    In some circumstances, these can be reparented to init when sidekiq is
    terminated, leading to duplication of work and strange concurrency
    problems.
    
    This commit changes sidekiq so that, if run as a process group leader,
    it will forward `INT` and `TERM` signals to the whole process group. If
    the memory killer is active, it will also use the process group when
    resorting to `kill -9` to shut down.
    
    These changes mean that a naive `kill <pid-of-sidekiq>` will now do the
    right thing, killing any child processes spawned by sidekiq, as long as
    the process supervisor placed it in its own process group.
    
    If sidekiq isn't a process group leader, this new code is skipped.
    f0c52df5
Name
Last commit
Last update
..
environments Loading commit data...
initializers Loading commit data...
locales Loading commit data...
prometheus Loading commit data...
routes Loading commit data...
README.md Loading commit data...
application.rb Loading commit data...
boot.rb Loading commit data...
database.yml.env Loading commit data...
database.yml.mysql Loading commit data...
database.yml.postgresql Loading commit data...
dependency_decisions.yml Loading commit data...
environment.rb Loading commit data...
gitlab.yml.example Loading commit data...
jsdocs.config.js Loading commit data...
karma.config.js Loading commit data...
license_finder.yml Loading commit data...
mail_room.yml Loading commit data...
no_todos_messages.yml Loading commit data...
object_store_settings.rb Loading commit data...
puma.example.development.rb Loading commit data...
redis.cache.yml.example Loading commit data...
redis.queues.yml.example Loading commit data...
redis.shared_state.yml.example Loading commit data...
resque.yml.example Loading commit data...
routes.rb Loading commit data...
secrets.yml.example Loading commit data...
settings.rb Loading commit data...
sidekiq.yml.example Loading commit data...
sidekiq_queues.yml Loading commit data...
spring.rb Loading commit data...
unicorn.rb.example Loading commit data...
unicorn.rb.example.development Loading commit data...
webpack.config.js Loading commit data...