Releases: riverqueue/river
Releases · riverqueue/river
v0.3.0
Added
- The River client now supports "poll only" mode with
Config.PollOnly
which makes it avoid issuingLISTEN
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, butPollOnly
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
Added
- New periodic jobs can now be added after a client's already started using
Client.PeriodicJobs().Add()
and removed withRemove()
. PR #288.
Changed
- The level of some of River's common log statements has changed, most often demoting
info
statements todebug
so thatinfo
-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
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 likeriver migrate-get --up --version 3 > version3.up.sql
. PR #273. - The River CLI's
migrate-down
andmigrate-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
v0.0.24
v0.0.23
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
v0.0.21
Changed
- Tweaked behavior of
JobRetry
so that it does actually update theScheduledAt
time of the job in all cases where the job is actually being rescheduled. As before, jobs which are already available with a pastScheduledAt
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
v0.0.19
Added
- Added
JobGet
andJobGetTx
to theClient
to enable easily fetching a single job row from code for introspection. [PR #186]. - Added
JobRetry
andJobRetryTx
to theClient
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.