Skip to content

Releases: rails/solid_queue

v1.5.0

Choose a tag to compare

@rosa rosa released this 23 Jul 11:22

Lots of bugfixes in this one, thanks to a bunch of new contributors!

Notable changes in this release:

  • Drop support for Ruby 3.1, which has been EOL for a while
  • Improve DISTINCT queries used for polling with not specific queue names in PostgreSQL
  • Change polling interval default to 1 second
  • New bin/job check to validate configuration
  • Support setting a default time zone for recurring tasks

What's Changed

  • Accept optional job argument in stopping? by @thoughtless in #747
  • docs: use single splat in key argument for limits_concurrency by @G-Rath in #749
  • Warn instead of raising when the connection pool is smaller than the thread pool by @ajaynomics in #753
  • add bin/jobs check to validate config before starting by @alexanderadam in #745
  • Refactor errors and warnings when parsing configuration by @rosa in #759
  • Remove trapping QUIT on Windows by @andyundso in #727
  • Change default polling_interval to 1 sec by @hachi8833 in #721
  • Memoize Runnable#mode to stop allocating a String + StringInquirer pe… by @s01ipsist in #744
  • Avoid reloading job rows after dispatch and schedule by @ImDineshSaini in #742
  • Fix recurring task logging as if it enqueued the same job twice by @ghiculescu in #731
  • Improve DISTINCT queries on PostgreSQL via recursive CTE by @bubiche in #730
  • Automatically use Rails or a default timezone for the schedule by @andyjeffries in #750
  • Fix flaky concurrency controls test by @diogovernier in #734
  • Reduce flaky integration test failures from timing and PK reuse by @rafael-pissardo in #758
  • Add compatibility with strict_loading_by_default by @JoeDupuis in #375
  • Report rescued recurring enqueue errors to Rails.error by @rafael-pissardo in #756
  • Drop support for Ruby 3.1 by @rosa in #762
  • Prevent concurrency lock leaks that cause duplicate job execution by @rosa in #761

New Contributors

Full Changelog: v1.4.0...v1.5.0

v1.4.0

Choose a tag to compare

@rosa rosa released this 20 Mar 18:12

This release includes support for recurring dynamic tasks. Enable by setting this in your queue.yml configuration:

scheduler: 
  dynamic_tasks_enabled: true
  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5

And then, schedule recurring tasks dynamically as:

SolidQueue.schedule_recurring_task(
  "my_dynamic_task",
  class: "MyJob",
  args: [1, 2],
  schedule: "every 10 minutes"
)

This accepts the same options as the YAML configuration: class, args, command, schedule, queue, priority, and description.

Learn more about this in the README.

What's Changed

  • Add index hint for releasing blocked executions by @rosa in #718
  • Avoid an unintended FOR UPDATE query execution inside lock_candidates by @genya0407 in #720
  • docs: improve grammar a little by @G-Rath in #723
  • Dynamic scheduled tasks by @cupatea in #553

New Contributors

Full Changelog: v1.3.2...v1.4.0

v1.3.2

Choose a tag to compare

@rosa rosa released this 20 Feb 09:12

What's Changed

  • Fix race condition between job enqueue and concurrency unblock by @rosa in #712
  • Fix application of SOLID_QUEUE_SUPERVISOR_MODE environment variable by @lovro-bikic in #709
  • Fix: Detect and warn when schedules generate multiple CRONs by @himanshukale36 in #707
  • Clean up dead thread from process_instances when replacing it by @rosa in #714
  • Fix crash when recording a failed execution for a job that already has one by @rosa in #713
  • Guard against nil pid in Puma plugin stop by @rosa in #715
  • Handle nil process in heartbeat by @rosa in #716
  • Skip concurrency controls for jobs whose class has been removed by @rosa in #717

New Contributors

Full Changelog: v1.3.1...v1.3.2

v1.3.1

Choose a tag to compare

@rosa rosa released this 17 Feb 15:30

What's Changed

New Contributors

Full Changelog: v1.3.0...v1.3.1

v1.3.0 - Async mode reintroduced

Choose a tag to compare

@rosa rosa released this 09 Jan 07:06

The main change in this release is the re-introduction of async mode for the supervisor. Read more about it in the README.

What's Changed

  • Minimizing flakiness of dispatcher_test.rb by @p-schlickmann in #678
  • Improve Consistency of README by @conradbeach in #680
  • More flakes and prevent deadlocked actions from consuming GH quota by @p-schlickmann in #681
  • Attempt to reduce flakiness of recurring_tasks_test by @p-schlickmann in #684
  • Fixed indentation for the adapter line in the README’s cable.yml example by @simaaaji in #687
  • Fix spacing for database.yml in README.md by @danielvdao in #691
  • Update README.md with MariaDB SKIP LOCKED version information by @chapmajs in #690
  • Attempt to reduce flakiness of scheduler_test by @p-schlickmann in #686
  • Add Ruby 4 to tests and stop using minitest/mock for stub by @rosa in #697
  • Adapt tests to Rails 8.2+ re-introduction of enqueue_after_transaction_on_commit by @rosa in #698
  • Re-institute async mode by @joshleblanc in #644

New Contributors

Full Changelog: v1.2.4...v1.3.0

v1.2.4

Choose a tag to compare

@rosa rosa released this 16 Dec 10:33

What's Changed

New Contributors

Full Changelog: v1.2.3...v1.2.4

v1.2.3

Choose a tag to compare

@rosa rosa released this 28 Oct 20:10

What's Changed

New Contributors

Full Changelog: v1.2.2...v1.2.3

v1.2.2

Choose a tag to compare

@rosa rosa released this 21 Oct 21:37

What's Changed

New Contributors

Full Changelog: v1.2.1...v1.2.2

v1.2.1

Choose a tag to compare

@rosa rosa released this 23 Jul 08:04

What's Changed

New Contributors

Full Changelog: v1.2.0...v1.2.1

v1.2.0

Choose a tag to compare

@rosa rosa released this 11 Jul 15:38

This release includes support for Active Job continuations and discarding on conflict when using concurrency controls.

What's Changed

New Contributors

Full Changelog: v1.1.5...v1.2.0