Permalink
Commits on May 19, 2016
  1. Merge pull request #146 from kcrayon/process-still-running-edge-case

    nevans committed May 19, 2016
    catch edge cases where old_pid is invalid
  2. Merge pull request #153 from jeremy/avoid-open3-deadlock

    nevans committed May 19, 2016
    Fix occasional all_resque_pool_processes deadlock
Commits on May 15, 2016
  1. Fix occasional all_resque_pool_processes deadlock

    jeremy committed May 15, 2016
    `Open3.capture3` is vulnerable to deadlock because it has two threads
    doing blocking reads on separate stderr/stdout pipes, each with limited
    buffer size.
    
    In this case, we only need stdout to parse the pids. We want stderr in
    case the ps command fails. So we get the best of both worlds by
    redirecting stderr to stdout, relying on exitstatus to decide whether
    the command succeeded, and showing full output if it didn't.
Commits on Jan 14, 2016
  1. Merge pull request #148 from msufa/msufa/readme_fixes

    nevans committed Jan 14, 2016
    Minor readme fixes
  2. minor readme fixes

    msufa committed Jan 14, 2016
     - remove duplicated "other"
     - turn reference to issue #139 into a link
Commits on Nov 17, 2015
Commits on Oct 26, 2015
  1. Merge pull request #141 from joshuaflanagan/namespaces

    nevans committed Oct 26, 2015
    Move FileOrHashLoader into Resque::Pool namespace
  2. Move FileOrHashLoader into Resque::Pool namespace

    joshuaflanagan committed Oct 26, 2015
    Avoid polluting the consumer's global namespace.
Commits on Oct 14, 2015
  1. ruby 1.9.3 EOL was 2015-02-23

    nevans committed Oct 14, 2015
    Also, I want to use keyword args!
  2. Changelog credits

    nevans committed Oct 14, 2015
  3. bump dev version

    nevans committed Oct 14, 2015
  4. Merge pull request #140 from nevans/hot-swap

    nevans committed Oct 14, 2015
    Hot swap
  5. Kill other pools *after* workers have started

    nevans committed Oct 14, 2015
  6. .gitignore

    nevans committed Oct 14, 2015
  7. Merge remote-tracking branch 'ShippingEasy/kill_others' into kill_others

    nevans committed Oct 14, 2015
    Conflicts:
    	lib/resque/pool/cli.rb
  8. Merge pull request #138 from joshuaflanagan/spec_updates

    nevans committed Oct 14, 2015
    Make `rake spec` fast again
  9. Merge pull request #132 from ShippingEasy/upstream-pr

    nevans committed Oct 14, 2015
    Options to aid zero-downtime deployment / process supervision
  10. Make `rake spec` fast again

    joshuaflanagan committed Oct 14, 2015
    One of the `logging_spec` specs is *really* slow.
    Tagged it as slow, and changed `rake spec` to ignore
    all `slow` specs. They will still be run by the
    continuous integration build.
  11. Require at least rspec 2.99 for development

    joshuaflanagan committed Oct 14, 2015
    The CI build on travis is already using 2.99.0 for
    all ruby versions. We might as well codify it so
    that we can take advantage of features added
    since 2.10.
  12. An explicit --pidfile arg overrides the --no-pidfile arg

    joshuaflanagan committed Oct 14, 2015
    Time to add specs for the option parsing, now that
    it is gaining some non-trivial logic.
    
    CLI#parse_options can accept an array of arguments,
    to simplify testing.
  13. More reliably identify other pools to kill

    joshuaflanagan committed Oct 14, 2015
    Specify the output columns for the `ps` command.
    Only match process commands that start with `resque-pool-master`
Commits on Oct 13, 2015
  1. Add README note and example upstart config

    brasic committed Oct 12, 2015
    This explains functionality from #132 and #137 and provides example
    upstart config files that will allow for zero-downtime deploys.
  2. Support holding a shared lock on a designated file forever

    brasic committed Nov 9, 2014
    This is to support running resque-pool inside of upstart while allowing
    for zero-downtime restarts.  It enables the use of this strategy:
    
    http://orchestrate.io/blog/2014/03/26/tip-seamless-restarts-with-unicorn-and-upstart/
    
    The idea is that when the pool starts, it opens a shared lock that it
    will hold forever.
    
    In the envisioned use-case, upstart is responsible for restarting a
    resque-pool if it fails.  When resque-pool daemonizes, upstart keeps
    track of the process id.  However, to ensure no downtime, we do not stop
    and start the pool.  Instead, when a deploy happens, a new resque-pool
    instance will start and kill the old one after it is ready to fork
    workers.  This would ordinarily cause upstart to detect that the
    original process has died and relaunch it, which is not desired
    behavior.  If the upstart init script tries to obtain an exclusive lock,
    this attempt will block while any pool instance is still running,
    including ones other than the original process.
  3. Support no-pidfile mode

    brasic committed Nov 6, 2014
    This change makes it possible to run multiple copies of resque-pool on
    the same server using the --daemon flag, which was previously not
    allowed since the server refuses to start if its configured pidfile
    already exists.  Process supervisors like upstart and systemd already
    know what pids they are managing, so in this context a pidfile is
    unnecessary.
    
    Without the ability to run concurrent daemon instances, zero-downtime
    deployment (in which a new resque-pool instance starts up and slowly
    replaces the previous instance until it is done) is not feasible.
Commits on Oct 11, 2015
  1. Option to kill other resque-pool instances on startup

    joshuaflanagan committed Oct 11, 2015
    Adds the `--kill-others` command line option.
    When this option is set, resque-pool will send a graceful
    shutdown signal to all other running resque-pools.
    
    This is useful in "no downtime deploy" scenarios,
    where you want the pool running the new code to
    completely load its environment and be ready to
    process work *before* shutting down the old code.
    Once the new code is ready, it will shut down the
    old processes for you.
    
    See also #132
Commits on Oct 8, 2015
  1. README: a little less 2011, a little more 2015

    nevans committed Oct 8, 2015
    a work in progress...
  2. Merge pull request #134 from nevans/hooks

    nevans committed Oct 8, 2015
    Merged hooks refactoring by @jonleighton; closes #89
Commits on Oct 7, 2015
  1. Merge remote-tracking branch 'jonleighton/after_spawn_hook'

    nevans committed Oct 7, 2015
    Updated docs.
    
    Conflicts:
    	lib/resque/pool.rb
  2. Merge pull request #131 from grosser/grosser/ruby

    nevans committed Oct 7, 2015
    move mustache requirement (for ronn) into gemspec
Commits on Oct 6, 2015