jitendra / lqext
Laravel queue enhancements, failure handling & retries.
Requires
- php: ^7.0
- illuminate/bus: 5.5.* || 5.6.* || 5.7.*
- illuminate/contracts: 5.5.* || 5.6.* || 5.7.*
- illuminate/database: 5.5.* || 5.6.* || 5.7.*
- illuminate/events: 5.5.* || 5.6.* || 5.7.*
- illuminate/mail: 5.5.* || 5.6.* || 5.7.*
- illuminate/support: 5.5.* || 5.6.* || 5.7.*
Requires (Dev)
- phpunit/phpunit: ^6.5
- squizlabs/php_codesniffer: ^3.3
This package is not auto-updated.
Last update: 2022-05-10 21:09:09 UTC
README
lqext
What
-
Makes Laravel's dispatchers which are buses, events & mailable, transaction
aware. I.e. dispatching events, jobs or mailable, be it queued or sync in
complex flows, inside nested transaction etc will work as normal expectation. -
Makes Laravel's queued dispatcher to log failures to redis storage andBecause of a minor
adds support for re attempting those failed remote pushes.
issue in framework's code the logging queue push failures part errors right.
now. Please wait while a workaround is added.
How
Thanks to framework's design which allows extending any service of its easily
and within limits.
The library extends a very few methods of events, mailer, dispatcher, queue
factory & queue services of framework. The extending is done via decoration
pattern instead of sub-classing.
Use
Install using composer
composer require jitendra/lqext
Copy configuration
cp vendor/jitendra/lqext/src/config.php config/lqext.php
Transaction aware dispatching
Besides whitelisting dispatch-able names in above config file, we can use below
trait in any of job, mailable classes.
class Job { use \Jitendra\Lqext\TransactionAware; // ... }
Logging queue push failures
Uses default redis connection and maintains log of jobs which failed push to
remote service in a list. Also Laravel's queue manager will have a method now
to retery failed pushes.
// Retry last 1k failed to push jobs. You could add a controller or write a // CLI command and invoke this method call from there. $this->app->queue->retryFailedToPushJobs();