Revision history for Perl extension Minion::Backend::mysql.
0.26 2021-05-27 17:26:48-05:00 America/Chicago
[Fixed]
- Improved performance of the notes table by adding an index. Thanks
@larryl of Grant Street Group for the patch!
- Fixed rudely clobbering a $@ when updating notes
- Fixed missing cleanup queries in reset
- Removed the transaction around the dequeue. This allows the race to
happen between SELECT and UPDATE, but now we check who wins the
race. The loser goes back to try another SELECT. Thanks @larryl for
the SQL.
[Added]
- Added a `no_txn` attribute to disable the transaction around the
`enqueue` queries. I do not recommend using this in production,
but it helps make testing easier: Tests can be performed in
a transaction, and then the transaction rolled back to undo any
changes before the next test.
0.25 2021-05-21 21:32:59-05:00 America/Chicago
[Fixed]
- Fixed compatibility with DBD::MariaDB. Thanks @saintserge for the
patch! [Github #35]
0.24 2021-04-12 19:04:09-04:00 America/Detroit
[NOTE]
This release tries to fix some reported deadlocks from job dequeuing
by moving the dequeue process into a transaction with a `SELECT ...
FOR UPDATE` query. Please make sure to test this release in your
environment before moving it to production, and be prepared to roll
back to v0.23. Please report any issues you have so they can get
fixed!
[Fixed]
- Fix compatibility with Mojolicious 9.0: The tests would fail
because the `delay` helper is no longer available.
- Fix jobs being run before their parents. Thanks @tn-laslov for
reporting this issue and providing the solution! [Github #34]
- Fix slow job dequeue on very large jobs tables. Thanks @znestor
for reporting this issue and providing the solution! [Github #33]
- Trying to fix some reported deadlocks in job dequeueing. Thanks
@srchulo for reporting and help debugging this issue, and Grant
Street Group for additional debugging information. [Github #28]
- Fix note values not accepting UTF-8 characters. Thanks @uralm1 for
reporting this issue and providing a fix! [Github #32]
0.23 2020-12-19 16:56:40-06:00 America/Chicago
[Fixed]
- Fixed backend committing the current transaction whenever it is
instanciated. This was causing problems with tests that use
transactions for isolation and then rollback to restore. Thanks
Grant Street Group for reporting this issue!
0.22 2020-12-17 22:04:50-06:00 America/Chicago
[Fixed]
- Added a primary key to the dependencies table
(`minion_job_depends`). This helps with MySQL cluster systems (like
Percona XtraDB) which need primary keys in order to correctly
propagate writes. Thanks @nickyinhu and Grant Street Group for
submitting this patch! (Github #31)
0.21 2020-07-31 22:55:46-05:00 America/Chicago
[Fixed]
- The mysql backend is now fully-compatible with Minion 10.13,
including:
- Listing jobs by notes
- Expiring jobs (experimental)
- Lax dependencies (experimental)
0.20 2020-04-18 20:24:43-05:00 America/Chicago
[Fixed]
- Fixed error trying to load database on MySQL 8.0: The lock function
did not have the appropriate annotations. Thanks @yahermann for
reporting this issue! [Github #27]
0.19 2020-01-30 23:48:41-06:00 America/Chicago
[Fixed]
- This backend is now (mostly) compatible with Minion 10.04.
Only searching for jobs by notes is not implemented yet.
0.18 2019-09-03 13:28:42-05:00 America/Chicago
[Fixed]
- Fixed an issue with InnoDB index sizing and MySQL strict mode.
Thanks @larryl and Grant Street Group! (Github #24)
0.17 2019-08-27 16:11:57-05:00 America/Chicago
[Fixed]
- Fixed migrations not running when given an existing MySQL
connection. Thanks @larryl and Grant Street Group!
- Improved performance for locks and dequeueing. Thanks @larryl and
Grant Street Group!
- Fixed the statistics to work under MySQL strict mode. Thanks @larryl
and Grant Street Group!
0.16 2019-08-10 21:27:33-05:00 America/Chicago
[Added]
- Added Travis tests for more MySQL and MariaDB versions. Thanks
@paultcochrane for the initial work on this. (Github #1)
- You can now pass in a connected Mojo::mysql instance to the backend
to make it use that (instead of creating its own instance). This can
help make sure that concurrent connections are limited and reused.
Thanks @larryl & @GrantStreetGroup for contributing this!
(Github #22)
[Fixed]
- Fixed SQL errors under MySQL strict mode (Specifically, the SQL
GROUP BY columns need to be specified as SELECTed). Thanks @larryl
& @GrantStreetGroup! (Github #22)
- Fixed backend creating dozens of connections to MySQL. Now basic
operations should be far more efficient. Thanks @larryl
& @GrantStreetGroup! (Github #22)
0.15 2018-11-10 11:46:56-06:00 America/Chicago
[Fixed]
- Fixed warning when pulling history for the Minion admin console.
Thanks @chromedome! [Github #20]
- Fixed tests failing with "DBD::mysql::st execute failed: This
function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its
declaration and binary logging is enabled". MySQL 8 adds some sanity
checks to functions and we need to override them. This might
actually be a problem that we will have to fix later...
0.14 2018-04-30 20:41:08-04:00 America/New_York
[Fixed]
- Fixed backend to work with Minion v9.03. Thanks @pentabion! [Github
#18]
- Fixed an intermittently failing test. Thanks @pentabion! [Github
#19]
[Other]
- Fixed Travis configuration to pass tests on 5.12/5.10 and improve
performance
0.13 2018-02-03 11:28:16-06:00 America/Chicago
[Added]
- Added `list_locks` method so that the Minion admin UI works. Thanks
@pentabion! [Github #17]
0.12 2018-01-14 01:22:07-06:00 America/Chicago
[Fixed]
- Fixed all the missing features from the backend to fully-support
Minion 8.
0.11 2017-11-18 13:43:48-06:00 America/Chicago
[Fixed]
- Upgraded backend to work with Minion 8 and the Minion admin UI
- Allow hashref of options to Mojo::mysql. This lets us pass in a full
DBI connection string to use options not normally available via the
`mysql://` URL string.
0.10 2017-11-05 19:12:38-06:00 America/Chicago
[Fixed]
- Fixed tests to only run on MySQL 5.6.5 or higher. Versions older
than this do not support the `TIMESTAMP` column settings we are
using. Thanks @paultcochrane!
- Fixed tests to report which MySQL version is running so we can more
easily detect why database queries are failing. Thanks
@paultcochrane!
- Fixed travis reporting coverage to coveralls. Thanks @paultcochrane!
- Removed some whitespace-only POD lines which `podchecker` was
complaining about. Thanks @paultcochrane!
0.09 2017-11-02 14:08:31-05:00 America/Chicago
[Added]
- Added initial Travis CI configuration. Thanks @paultcochrane!
(Github #5)
[Fixed]
- Fixed missing test prereqs as requested by CPANTS. Thanks
@paultcochrane! (Github #4)
- Added an explicit Perl version declaration as requested by CPANTS.
Thanks @paultcochrane! (Github #3)
- Fixed links to Travis and Coveralls badges. Thanks @paultcochrane
(Github #2)
0.08 2017-09-01 20:21:11-05:00 America/Chicago
- Fixed contributors showing multiple times in the documentation
0.07 2017-09-01 20:02:45-05:00 America/Chicago
- Increased size of args/result fields to support jobs with more
information.
0.06 2017-09-01
- Partial support for Minion 7.0
- Automatic job retry
- Worker commands
- Missing features: job parents, locking, job notes
This is enough to boot Minion and run basic jobs. Any jobs that
depend on unimplemented features may not work correctly, and may
cause errors.
0.04 After 0.03
- Support Minion 2.0
0.03 After 0.02
- Inital Pub/Sub work
0.02 After 0.01
- Add in complete Mojolicious::Lite example
0.01 Tue Sep 15 19:24:46 2015
- original version; created by h2xs 1.23 with options
-A -X -n Minion::Backend::mysql