From cc6a0899cffae90789d1ae92b525f526addd3eaa Mon Sep 17 00:00:00 2001 From: Simon Fu Date: Thu, 16 Mar 2017 15:41:51 +0800 Subject: [PATCH] using queue codes in lumen 5.3 to fix issue #5 and #6 --- src/Queue/PHPRedisJob.php | 9 +++++++-- src/Queue/PHPRedisQueue.php | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/Queue/PHPRedisJob.php b/src/Queue/PHPRedisJob.php index 2279378..313e775 100644 --- a/src/Queue/PHPRedisJob.php +++ b/src/Queue/PHPRedisJob.php @@ -47,8 +47,13 @@ public function __construct(Container $container, PHPRedisQueue $redis, $job, $q */ public function fire() { - $this->resolveAndFire(json_decode($this->getRawBody(), true)); - } + $payload = $this->payload(); + + list($class, $method) = $this->parseJob($payload['job']); + + $this->instance = $this->resolve($class); + + $this->instance->{$method}($this, $payload['data']); } /** * Get the raw body string for the job. diff --git a/src/Queue/PHPRedisQueue.php b/src/Queue/PHPRedisQueue.php index d97aaf6..153b7f1 100644 --- a/src/Queue/PHPRedisQueue.php +++ b/src/Queue/PHPRedisQueue.php @@ -50,6 +50,20 @@ public function __construct(Database $redis, $default = 'default', $connection = { $this->redis = $redis; $this->default = $default; + $this->connection = $connection; + } + + /** + * Get the size of the queue. + * + * @param string $queue + * @return int + */ + public function size($queue = null) + { + $queue = $this->getQueue($queue); + + return $this->getConnection()->eval(LuaScripts::size(), 3, $queue, $queue.':delayed', $queue.':reserved'); } /**