When upgrading from previous versions, the existing jobs DB storage table will not be used anymore. This new version cannot process pending jobs stored by the previous releases of this package.
In fact, after successfully upgrading, you can delete the table created by the 1.x releases of QueuesFluentDriver.
The ability to list the existing jobs via the (non-standard) list() method has been removed. Not sure if anyone was really using this feature; can be added back upon request.
This version now assumes that the jobs will always have a unique ID. When you specify a custom JobIdentifier, it is now your responsibility to ensure that you don't create another job with the same ID as a job that still exists in the QueuesFluentDriver DB tables.
Generally, we don't recommend using custom JobIdentifiers with this package (unless you are absolutely certain that your custom values will be unique).
Jobs that are completed are now deleted from the database tables, instead of using Fluent's soft delete feature.
You can opt in for the previous behavior by setting app.queues.use(.fluent(useSoftDeletes: true))
Other internal changes:
The format of the storage for the Queues jobs information has changed. This will ensure the storage of jobs is less error prone no matter the database (Postgres, Mysql) and the job payload/parameters.
This format now uses Data natively and skips the intermediate JSON encoding previously used; this should have a small but positive impact on performance.
QueuesFluentDriver 2.0
Breaking changes
list()
method has been removed. Not sure if anyone was really using this feature; can be added back upon request.JobIdentifier
, it is now your responsibility to ensure that you don't create another job with the same ID as a job that still exists in the QueuesFluentDriver DB tables. Generally, we don't recommend using customJobIdentifier
s with this package (unless you are absolutely certain that your custom values will be unique).app.queues.use(.fluent(useSoftDeletes: true))
Other internal changes:
Data
natively and skips the intermediate JSON encoding previously used; this should have a small but positive impact on performance.