Skip to content

Releases: riverqueue/river

v0.3.0

16 Apr 03:15
06f9447
Compare
Choose a tag to compare

Added

  • The River client now supports "poll only" mode with Config.PollOnly which makes it avoid issuing LISTEN statements to wait for new events like a leadership resignation or new job available. The program instead polls periodically to look for changes. A leader resigning or a new job being available will be noticed less quickly, but PollOnly potentially makes River operable on systems without listen/notify support, like PgBouncer operating in transaction pooling mode. PR #281.
  • Added rivertype.JobStates() that returns the full list of possible job states. PR #297.

v0.2.0

16 Apr 03:14
baeb245
Compare
Choose a tag to compare

Added

  • New periodic jobs can now be added after a client's already started using Client.PeriodicJobs().Add() and removed with Remove(). PR #288.

Changed

  • The level of some of River's common log statements has changed, most often demoting info statements to debug so that info-level logging is overall less verbose. PR #275.

Fixed

  • Fixed a bug in the (log-only for now) reindexer service in which it might repeat its work loop multiple times unexpectedly while stopping. PR #280.
  • Periodic job enqueuer now bases next run times on each periodic job's last target run time, instead of the time at which the enqueuer is currently running. This is a small difference that will be unnoticeable for most purposes, but makes scheduling of jobs with short cron frequencies a little more accurate. PR #284.
  • Fixed a bug in the elector in which it was possible for a resigning, but not completely stopped, elector to reelect despite having just resigned. PR #286.

v0.1.0

17 Mar 23:24
5475019
Compare
Choose a tag to compare

Although it comes with a number of improvements, there's nothing particularly notable about version 0.1.0. Until now we've only been incrementing the patch version given the project's nascent nature, but from here on we'll try to adhere more closely to semantic versioning, using the patch version for bug fixes, and incrementing the minor version when new functionality is added.

Added

  • The River CLI now supports river bench to benchmark River's job throughput against a database. PR #254.
  • The River CLI now has a river migrate-get command to dump SQL for River migrations for use in alternative migration frameworks. Use it like river migrate-get --up --version 3 > version3.up.sql. PR #273.
  • The River CLI's migrate-down and migrate-up options get two new options for --dry-run and --show-sql. They can be combined to easily run a preflight check on a River upgrade to see which migration commands would be run on a database, but without actually running them. PR #273.
  • The River client gets a new Client.SubscribeConfig function that lets a subscriber specify the maximum size of their subscription channel. PR #258.

Changed

  • River uses a new job completer that batches up completion work so that large numbers of them can be performed more efficiently. In a purely synthetic (i.e. mostly unrealistic) benchmark, River's job throughput increases ~4.5x. PR #258.
  • Changed default client IDs to be a combination of hostname and the time which the client started. This can still be changed by specifying Config.ID. PR #255.
  • Notifier refactored for better robustness and testability. PR #253.

v0.0.25

02 Mar 04:29
6b03de1
Compare
Choose a tag to compare

Fixed

  • Fixed a problem in riverpgxv5's Listener where it wouldn't unset an internal connection if Close returned an error, making the listener not reusable. Thanks @mfrister for pointing this one out! PR #246.

v0.0.24

01 Mar 04:41
035ba59
Compare
Choose a tag to compare

Fixed

  • Fixed a memory leak caused by not always cancelling the context used to enable jobs to be cancelled remotely. PR #243.

v0.0.23

29 Feb 15:29
4e5a6f8
Compare
Choose a tag to compare

Added

  • JobListParams.Kinds() has been added so that jobs can now be listed by kind. PR #212.

Changed

  • The underlying driver system's been entirely revamped so that River's non-test code is now decoupled from pgx/v5. This will allow additional drivers to be implemented, although there are no additional ones for now. PR #212.

Fixed

  • Fixed a memory leak caused by allocating a new random source on every job execution. Thank you @shawnstephens for reporting ❤️ PR #240.
  • Fix a problem where JobListParams.Queues() didn't filter correctly based on its arguments. PR #212.
  • Fix a problem in DebouncedChan where it would fire on its "out" channel too often when it was being signaled continuousy on its "in" channel. This would have caused work to be fetched more often than intended in busy systems. PR #222.

v0.0.22

19 Feb 20:27
4799854
Compare
Choose a tag to compare

Fixed

  • Brings in another leadership election fix similar to #217 in which a TTL equal to the elector's run interval plus a configured TTL padding is also used for the initial attempt to gain leadership (#217 brought it in for reelection only). PR #219.

v0.0.21

19 Feb 18:15
ac7cc2e
Compare
Choose a tag to compare

Changed

  • Tweaked behavior of JobRetry so that it does actually update the ScheduledAt time of the job in all cases where the job is actually being rescheduled. As before, jobs which are already available with a past ScheduledAt will not be touched by this query so that they retain their place in line. PR #211.

Fixed

  • Fixed a leadership re-election issue that was exposed by the fix in #199. Because we were internally using the same TTL for both an internal timer/ticker and the database update to set the new leader expiration time, a leader wasn't guaranteed to successfully re-elect itself even under normal operation. PR #217.

v0.0.20

15 Feb 02:41
896fd0b
Compare
Choose a tag to compare

Fixed

  • Fix a leadership re-election query bug that would cause past leaders to think they were continuing to win elections. PR #199.

v0.0.19

15 Feb 01:07
6c7dc49
Compare
Choose a tag to compare

Added

  • Added JobGet and JobGetTx to the Client to enable easily fetching a single job row from code for introspection. [PR #186].
  • Added JobRetry and JobRetryTx to the Client to enable a job to be retried immediately, even if it has already completed, been cancelled, or been discarded. [PR #190].

Changed

  • Validate queue name on job insertion. Allow queue names with hyphen separators in addition to underscore. PR #184.