@@ -450,25 +450,49 @@ protected function callQueueMethodOnHandler($class, $method, $arguments)
450
450
*/
451
451
protected function queueHandler ($ class , $ method , $ arguments )
452
452
{
453
- $ listener = (new ReflectionClass ($ class ))->newInstanceWithoutConstructor ();
454
-
455
- $ job = new CallQueuedListener ($ class , $ method , $ arguments );
453
+ list ($ listener , $ job ) = $ this ->createListenerAndJob ($ class , $ method , $ arguments );
456
454
457
- $ connection = isset ($ listener ->connection ) ? $ listener ->connection : null ;
455
+ $ connection = $ this ->resolveQueue ()->connection (
456
+ isset ($ listener ->connection ) ? $ listener ->connection : null
457
+ );
458
458
459
459
$ queue = isset ($ listener ->queue ) ? $ listener ->queue : null ;
460
460
461
- $ job ->tries = isset ($ listener ->tries ) ? $ listener ->tries : null ;
461
+ isset ($ listener ->delay )
462
+ ? $ connection ->laterOn ($ queue , $ listener ->delay , $ job )
463
+ : $ connection ->pushOn ($ queue , $ job );
464
+ }
462
465
463
- $ job ->timeout = isset ($ listener ->timeout ) ? $ listener ->timeout : null ;
466
+ /**
467
+ * Create the listener and job for a queued listener.
468
+ *
469
+ * @param string $class
470
+ * @param string $method
471
+ * @param array $arguments
472
+ * @return array
473
+ */
474
+ protected function createListenerAndJob ($ class , $ method , $ arguments )
475
+ {
476
+ $ listener = (new ReflectionClass ($ class ))->newInstanceWithoutConstructor ();
464
477
465
- $ resolvedQueue = $ this ->resolveQueue ()->connection ($ connection );
478
+ return [$ listener , $ this ->propogateListenerOptions (
479
+ $ listener , new CallQueuedListener ($ class , $ method , $ arguments )
480
+ )];
481
+ }
466
482
467
- if (isset ($ listener ->delay )) {
468
- $ resolvedQueue ->laterOn ($ queue , $ listener ->delay , $ job );
469
- } else {
470
- $ resolvedQueue ->pushOn ($ queue , $ job );
471
- }
483
+ /**
484
+ * Propogate listener options to the job.
485
+ *
486
+ * @param mixed $listener
487
+ * @param mixed $job
488
+ * @return mixed
489
+ */
490
+ protected function propogateListenerOptions ($ listener , $ job )
491
+ {
492
+ return tap ($ job , function ($ job ) use ($ listener ) {
493
+ $ job ->tries = isset ($ listener ->tries ) ? $ listener ->tries : null ;
494
+ $ job ->timeout = isset ($ listener ->timeout ) ? $ listener ->timeout : null ;
495
+ });
472
496
}
473
497
474
498
/**
0 commit comments