- 241 - Require Ruby 2.7+, dropping 2.6 support
- 241 - Require Rails 6.0+, dropping 5.2 support
- 240 - Allow setting inheritable per-job
job_iteration_max_job_runtime
- 289 - Fix uninitialized constant error when raising
ConditionNotSupportedError
fromActiveRecordBatchEnumerator
- 338 - All logs are now
ActiveSupport::Notifications
events and logged usingActiveSupport::LogSubscriber
to allow customization. Events now always include thecursor_position
tag. - 341 - Add
JobIteration.default_retry_backoff
, which sets a default delay when jobs are re-enqueued after being interrupted. Defaults tonil
, meaning no delay, which matches the current behaviour.
- 190 - Fix updating
times_interrupted
andtotal_time
when job is throttled
- 183 - Add
JobIteration::EnumeratorBuilder#build_csv_enumerator
- 174 - Fix Ruby 3.2 compatibility
- 153 - Re-enqueue jobs only after shutdown hooks have run
- 148 - Revert "Do not evaluate enumerator when throttled", due to backwards incompatibility.
- 87 - Do not evaluate enumerator when throttled (REVERTED)
- 133 - Moves attributes out of JobIteration::Iteration included block
- 107 - Remove broken links from README
- 108 - Drop support for ruby 2.5
- 110 - Update rubocop TargetRubyVersion
- 84 - Call adjust_total_time before running on_complete callbacks
- 94 - Remove unnecessary break
- 95 - ActiveRecordBatchEnumerator#each should rewind at the end
- 97 - Batch enumerator size returns the number of batches, not records
- 91 - Add enumerator yielding batches as Active Record Relations
- 77 - Defer enforce cursor be serializable until 2.0.0
- 73 - Enforce cursor be serializable This is reverted in 1.1.12 as it breaks behaviour in some apps.
- 69 - Fix memory leak in ActiveRecordCursor
- 61 - Call
super
inmethod_added
- Preserve ruby2_keywords tags in arguments on Ruby 2.7
- 54 - Fix warnings on Ruby 2.7
- 49 - Log when enumerator has nothing to iterate
- 52 - Fix CSVEnumerator cursor to properly remove already processed rows
- 47 - Optional
sorbet-runtime
support forJobIteration::Iteration
interface validation
- 45 - Add Throttle enumerator
- 36 - Check method validation at job initialization step
- 36 - Fix CsvEnumerator for Ruby 2.6.3
- 36 - Add case for using default keyword arguments for cursor in #build_enumerator
- 35 - Raise exception if malformed arguments are use in #build_enumerator
It’s been in production at Shopify since 2017. It has support for Rails 5 and 6 🎉
- 34 - remove supports_interruption?
- 30 - Better #each_iteration argument names
- 27 - iteration: don't allow double-retrying a job
- 23 - Remove upperbound constraint on ActiveJob