Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-06-04 | 4.6 kB | |
v0.23.0 source code.tar.gz | 2025-06-04 | 471.0 kB | |
v0.23.0 source code.zip | 2025-06-04 | 654.9 kB | |
Totals: 3 Items | 1.1 MB | 1 |
⚠️ Internal APIs used for communication between River and River Pro have changed. If using River Pro, make sure to update River and River Pro to latest at the same time to get compatible versions. River v0.23.0 is compatible with River Pro v0.15.0.
Terminal UI: @almottier wrote a very cool terminal UI for River featuring real-time job monitoring with automatic refresh, job filtering, a job details view providing detailed information (plus look up by ID in the UI or by command line argument), and job actions like retry and cancellation. And as good as all that might sound, go take a look because it's even better in person.
Added
- Preliminary River driver for SQLite (
riverdriver/riversqlite
). This driver seems to produce good results as judged by the test suite, but so far has minimal real world vetting. Try it and let us know how it works out. PR [#870]. - CLI
river migrate-get
now takes a--schema
option to inject a custom schema into dumped migrations and schema comments are hidden if--schema
option isn't provided. PR [#903]. - Added
riverlog.NewMiddlewareCustomContext
that makes the use ofriverlog
job-persisted logging possible with non-slog loggers. PR [#919]. - Added
RequireInsertedOpts.Schema
, allowing an explicit schema to be set when asserting on job inserts withrivertest
. PR [#926]. - When using a driver that doesn't support listen/notify, producers within same process are notified immediately of new job inserts and queue changes (e.g. pause/resume) without having to poll when non-transactional variants are used (i.e.
Insert
instead ofInsertTx
). PR [#928]. - Added
JobListParams.Where
, which provides an escape hatch for job listing that runs arbitrary SQL with named parameters. PR [#933].
Changed
- Optimized the job completer's query
JobSetStateIfRunningMany
, resulting in an approximately 15% reduction in its duration when completing 2000 jobs, and around a 15-20% increase inriverbench
throughput. PR [#904]. TimeStub
has been removed from therivertest
package. Its original inclusion was entirely accidentally and it should be considered entirely an internal API. PR [#912].- When storing job-persisted logging with
riverlog
, if a work run's logging was completely empty, no metadata value is stored at all (previously, an empty value was stored). PR [#919]. - Changed the internal integration APIs for River Pro. River Pro users must upgrade both libraries as part of this update. PR [#929].
Fixed
- Resuming an already unpaused queue is now fully an no-op, and won't touch the row's
updated_at
like it (unintentionally) did before. PR [#870]. - Suppress an error log line from the producer that may occur on normal shutdown when operating in poll-only mode. PR [#896].
- Added missing help documentation for CLI command
river migrate-list
. PR [#903]. - Correct handling an explicit schema in the reindexer maintenance service. PR [#916].
- Return specific explanatory error when attempting to use
JobListParams.Metadata
withJobListTx
on SQLite. PR [#924]. - The reindexer now skips work if artifacts from a failed reindex are present under the assumption that if they are, a new reindex build is likely to fail again. Context cancel timeout is increased from 15 seconds to 1 minute, allowing more time for reindexes to finish. Timeout becomes configurable with
Config.ReindexerTimeout
. PR [#935]. - Accessing
Client.PeriodicJobs()
on an insert-only client now panics with a more helpful explanatory error message rather than an unhelpful nil pointer panic. PR [#938]. - Return an error when adding a new queue at runtime via the
QueueBundle
if that queue was already added. PR [#929].