Sha256: 64a60067208d88df698551f756db925d6692228f6a9bb4149660d3fe8f2bea9e

Contents?: true

Size: 1.47 KB

Versions: 2

Compression:

Stored size: 1.47 KB

Contents

# resque-heroku-signals

This gem patches resque to be compatible with the Heroku platform. Specifically it
modifies the UNIX signaling logic to be compatible with the Heroku worker shutdown process.

[Read this GitHub comment for more context & details.](https://github.com/resque/resque/issues/1559)

The version of this gem corresponds to the version of Resque that it is compatible with.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'resque-heroku-signals'
```

Since this gem monkeypatches the Heroku worker the `gemspec` is locked to a `x.x.x` version of Resque. Issue a PR if this is not compatible with the version of resque you are using. 

## Example Procfile

```
worker: env QUEUE=* TERM_CHILD=1 INTERVAL=0.1 RESQUE_PRE_SHUTDOWN_TIMEOUT=20 RESQUE_TERM_TIMEOUT=8 bundle exec rake resque:work
```

* `RESQUE_PRE_SHUTDOWN_TIMEOUT` time a job has to finish up before the `TermException` exception is raised
* `RESQUE_TERM_TIMEOUT` time the job has to cleanup & save state
* Total shutdown time should be less than 30s. This is the time [Heroku gives you to cleanup before a `SIGKILL` is issued](https://devcenter.heroku.com/articles/dynos#shutdown)
* `INTERVAL` seconds to wait between jobs

Also, make you don't buffer logs: import log messages could fail to push to stdout during the worker shutdown process:

```ruby
$stdout.sync = true
```

## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
resque-heroku-signals-1.27.4.2 README.md
resque-heroku-signals-1.27.4.1 README.md