All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project aims to adhere to Semantic Versioning.
- Bring ActiveJob queue adapter's enqueuing behaviour inline with delayed_job & upstream adapters, by stopping it serializing & deserializing the job instance during the enqueue process. Optimises the enqueueing of jobs slightly too.
- Fixed regression for Rails 7.1.1 not executing jobs, due to lazy loading change in Rails.
The
JobWrapper
needs to be loaded beforeActiveJob::Base
is loaded, but this wasn't happening in the worker processes. Fix by extractingJobWrapper
into it's own file and loading whenDelayed
is loaded earlier in the process.
- Explicitly test Rails 7.1 and Ruby 3.1, Ruby 3.2 to verify compatability. Previous gems were compatible, but this release is now verified to be compatible.
0.5.0 - 2023-01-20
- Reduced handler size by excluding redundant 'job:' key (only 'job_data:' is
necessary). This ensures that a job can be deserialized even if the underlying
ActiveJob class is unknown to the worker, and will result in a retryable
NameError
instead of a permanently-failedDeserializationError
.
0.4.0 - 2021-11-30
- Fix Ruby 3.0 kwarg compatibility issue when executing jobs enqueued via the
Delayed::MessageSending
APIs (.delay
andhandle_asynchronously
).
Delayed::PerformableMethod
now splitskwargs
out into a separate attribute, while still being backwards-compatible with jobs enqueued via the previous gem version. This is an undocumented internal API and is not considered a breaking change, but if you had previously relied onpayload_object.args.last
to access keyword arguments, you must now usepayload_object.kwargs
.
0.3.0 - 2021-10-26
- Add more official support for Rails 7.0 (currently alpha2). There were no gem conflicts, but this
adds an entry to our
Appraisals
file so that we run CI tests against ActiveRecord 7.
- Fix Rails 7.0 deprecation warnings caused by usages of
ActiveRecord::Base.default_timestamp
- Fix tests that relied on classic autoloader behavior. Now we pull in Zeitwerk where necessary.
- Fix a couple issues caught by the linter, most notably resulting in a switch from
IO.select(...)
toIO#wait_readable(...)
, improving support for Ruby 3 scheduler hooks.
0.2.0 - 2021-08-30
- Fix the loading of
Delayed::Job
constant on newly-generated Rails 6.1 apps. (previously, the constant would not be available untilActiveRecord::Base
was referenced for the first time)
- The
Delayed::Railtie
is now aDelayed::Engine
, allowing it to autoload constants via Rails' built-in autoloader. In a non-Rails context,require 'delayed'
will eager-load its models.
0.1.1 - 2021-08-19
- This CHANGELOG file!
- Fix the gemspec description, which had previously been written in rdoc format (causing it to appear garbled on rubygems.org).
0.1.0 - 2021-08-17
- Initial release! This repo is the result of some merging, squashing, and commit massaging, in
preparation for a public release! The goal was to maintain historical commit authorship of the
ancestor repos (
delayed_job
anddelayed_job_active_record
), plus the changes from Betterment's internal forks.