| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-01-22 | 2.2 kB | |
| v2.20.3 source code.tar.gz | 2026-01-22 | 326.0 kB | |
| v2.20.3 source code.zip | 2026-01-22 | 403.7 kB | |
| Totals: 3 Items | 731.8 kB | 0 | |
Enhancements
- [Worker] Allow snoozing jobs by returning a tuple period
It's now possible to snooze jobs with a period such as {1, :minute} instead of just a raw number of seconds.
- [Oban] Validate no duplicate options are passed to config on init
Because options are provided as a keyword list, duplicate options were accepted while only one was actually used.
Bug Fixes
- [Oban] Fix starting a queue on a specific node
The :node option was incorrectly preserved when starting a queue, which would crash it. Now the :node is dropped after scoping the start signal.
- [Reindexer] Fix dropping invalid indexes from the reindexer
The reindexer would fail sliently with "DROP INDEX CONCURRENTLY" cannot be executed from a function message because the deindex operation used a DO block to loop through and drop invalid indexes, but PostgreSQL prohibits CONCURRENTLY operations inside functions or DO blocks. Now invalid indexes are fetched first, then dropped as individual queries.
- [Installer] Prevent installer crash with unsupported adapters
The installer would crash with a CaseClauseError when a project had an Ecto repo using an unsupported adapter like Ecto.Adapters.Tds.
Now the installer filters repos to find one with a supported adapter, skipping unsupported ones automatically. Without a compatible repo, it displays an error message listing the found repos and their adapters, along with guidance on how to specify a repo explicitly.
- [Pruner] Better sqlite timestamp default and pruning query
The CURRENT_TIMESTAMP type lacks a trailing z, which causes it to be compared incorrectly against UTC datetimes. Any jobs inserted without a scheduled_at, where the default is used, could be returned in queries that compare against a DateTime.
This prevents the issue in the future two ways:
- Switch the default
inserted_at/scheduled_attimestamp to a format that can be queried properly. - Change the pruning check to use
completed_atrather thanscheduled_atfor existing databases. This is a more accurate query that was avoided before because it didn't match theBasicengine.