@@ -450,25 +450,49 @@ protected function callQueueMethodOnHandler($class, $method, $arguments)
450450 */
451451 protected function queueHandler ($ class , $ method , $ arguments )
452452 {
453- $ listener = (new ReflectionClass ($ class ))->newInstanceWithoutConstructor ();
454-
455- $ job = new CallQueuedListener ($ class , $ method , $ arguments );
453+ list ($ listener , $ job ) = $ this ->createListenerAndJob ($ class , $ method , $ arguments );
456454
457- $ connection = isset ($ listener ->connection ) ? $ listener ->connection : null ;
455+ $ connection = $ this ->resolveQueue ()->connection (
456+ isset ($ listener ->connection ) ? $ listener ->connection : null
457+ );
458458
459459 $ queue = isset ($ listener ->queue ) ? $ listener ->queue : null ;
460460
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+ }
462465
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 ();
464477
465- $ resolvedQueue = $ this ->resolveQueue ()->connection ($ connection );
478+ return [$ listener , $ this ->propogateListenerOptions (
479+ $ listener , new CallQueuedListener ($ class , $ method , $ arguments )
480+ )];
481+ }
466482
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+ });
472496 }
473497
474498 /**
0 commit comments