Skip to content

indiebrain/resque-alive

Repository files navigation

resque-alive

https://github.com/indiebrain/resque-alive/actions/workflows/ruby.yml/badge.svg?branch=master

resque-alive adds a Kubernetes Liveness probe to a Resque instance.

How?

resque-alive provides a small rack application which exposes HTTP endpoint to return the “Aliveness” of the Resque instance. Aliveness is determined by the presence of an auto-expiring key. resque-alive schedules a “heartbeat” job to periodically refresh the expiring key - in the event the Resque instance can’t process the job, the key expires and the instance is marked as unhealthy.

Installation

Add this line to your application’s Gemfile:

gem 'resque-alive'

And then execute:

bundle install

Or install it yourself as:

gem install resque-alive

Usage

resque-alive will start when Resque starts.

bundle exec resque
curl localhost:7433
#=> Alive key is present

resque-alive can be disabled via the RESQUE_ALIVE_DISABLED ENV var:

RESQUE_ALIVE_DISABLED=true rake resque:work

Caveats

resque-alive requires a resque-scheduler process to be running in order to schedule the heartbeat Job.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/indiebrain/resque-alive. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

About

Kubernetes Liveness probe for Resque

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published