razorpay/lqext
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();
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.