Gush Versions Save

Fast and distributed workflow runner using ActiveJob and Redis

v.3.0.0

2 months ago

What's Changed

Full Changelog: https://github.com/chaps-io/gush/compare/v2.1.0...v.3.0.0

v2.1.0

1 year ago

Added

  • Allow RedisMutex’s locking duration and polling interval to be customizable, thanks to @thukim! See pull request
  • Support for Rails 7.0 and Ruby 3.0-3.1, thanks to @joshRpowell and @kzkn!

v2.0.2

2 years ago

v2.0.1

5 years ago

Fixed

  • Fix bug when retried jobs didn't correctly reset their failed flag when ran again (Thanks to @theo-delaune-argus and @mickael-palma-argus! See issue)

v2.0.0

5 years ago

Changed

  • [BREAKING] Store gush jobs in Redis hash instead of plain keys - this improves performance when retrieving values (Thanks to @Saicheg! See pull request)

Added

  • Allow setting queue for each job via :queue option in run method (Thanks to @devilankur18! See pull request)

v1.1.1

5 years ago

Changed

  • Relax dependency on ActiveSupport to work with 4.2 up to 5.X (Thanks to @iacobus! See pull request)

v1.1.0

6 years ago

This version might be incompatible for developers who relied on jobs array inside Workflow JSON (stored in Redis), see below for details. For others it's fully transparent and brings performance improvements!

Added

  • Added ability to specify TTL for Redis keys and manually expire whole workflows (Thanks to @dmitrypol! See pull request)
  • Loosened dependency on redis-rb library to >= 3.2 and < 5.0 (Thanks to @mofumofu3n! See pull request)

Fixed

  • Improved performance of (de)serializing workflows by not storing job array inside workflow JSON and other smaller improvements (See pull request)

v1.0.0

6 years ago

Added

Fixed

  • Fix graph rendering with gush viz command. Sometimes it rendered the last job detached from others, because it was using a class name instead of job name as ID.
  • Fix performance problems with unserializing jobs. This greatly increased performance by avoiding redundant calls to Redis storage. Should help a lot with huge workflows spawning thousands of jobs. Previously each job loaded whole workflow instance when executed.

Changed

  • BREAKING CHANGE Gushfile.rb is now renamed to Gushfile
  • BREAKING CHANGE Internal code for reporting status via Redis pub/sub has been removed, since it wasn't used for a long time.
  • BREAKING CHANGE jobs are expected to have a perform method instead of work like in < 1.0.0 versions.
  • BREAKING CHANGE payloads method available inside jobs is now an array of hashes, instead of a hash, this allows for a more flexible approach to reusing a single job in many situations. Previously payloads were grouped by predecessor's class name, so you were forced to hardcode that class name in its descendants' code.

Removed

  • gush workers command is now removed. This is now up to the developer to start background processes depending on chosen ActiveJob adapter.
  • environment was removed since it was no longer needed (it was Sidekiq specific)