From f80d51dcf58e70a2aa6a4993c31b0e9699aba191 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 09:05:46 +0100 Subject: [PATCH 01/12] Add a handler for jobs that aren't serialised PHP messages --- src/Job.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Job.php b/src/Job.php index c148953..c87a277 100644 --- a/src/Job.php +++ b/src/Job.php @@ -51,6 +51,20 @@ public function delete() $this->consumer->acknowledge($this->message); } + /** + * {@inheritdoc} + */ + public function fire() + { + $handlerClass = config('queue.connections.interop.handler'); + + if (! empty($handlerClass)) { + return (new $handlerClass($this->consumer->receive()))->handle(); + } else { + return parent::fire(); + } + } + /** * {@inheritdoc} */ @@ -60,7 +74,7 @@ public function release($delay = 0) $requeueMessage = clone $this->message; $requeueMessage->setProperty('x-attempts', $this->attempts() + 1); - + $producer = $this->context->createProducer(); try { From 799f68fb86a68d9cce79dc64a64d969d886c6586 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 13:11:50 +0100 Subject: [PATCH 02/12] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 6e52ced..f2f3fe7 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "illuminate/queue": "^6.0|^7.0|^8.0", "queue-interop/amqp-interop": "^0.8", "queue-interop/queue-interop": "^0.7|^0.8", - "enqueue/enqueue": "^0.10", + "enqueue/enqueue-dev": "^0.10", "enqueue/dsn": "^0.10" }, "require-dev": { From 145526bb6ef21d8b1f0d2f3fadfcc77199b98815 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 13:13:08 +0100 Subject: [PATCH 03/12] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index f2f3fe7..1a715b7 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "illuminate/queue": "^6.0|^7.0|^8.0", "queue-interop/amqp-interop": "^0.8", "queue-interop/queue-interop": "^0.7|^0.8", - "enqueue/enqueue-dev": "^0.10", + "enqueue/enqueue-dev": "dev-master", "enqueue/dsn": "^0.10" }, "require-dev": { From a078c6b58806bd00ae4cc2c5c9834afa6a97efb3 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 13:15:36 +0100 Subject: [PATCH 04/12] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 1a715b7..a53abe8 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,7 @@ }, "require-dev": { "phpunit/phpunit": "~5.5", - "enqueue/enqueue": "^0.10", + "enqueue/enqueue-dev": "dev-master", "enqueue/null": "^0.10@dev", "enqueue/test": "^0.10@dev", "enqueue/simple-client": "^0.10@dev" From a19cb04370d6db916a34886537e479a00de6b3eb Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 13:18:03 +0100 Subject: [PATCH 05/12] Update composer.json --- composer.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/composer.json b/composer.json index a53abe8..854dcb1 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,12 @@ "/Tests/" ] }, + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/weconnectdata/enqueue-dev" + } + ], "suggest": { "enqueue/simple-client": "If you want to use enqueue client and cli commands" }, From 20becc403dd33a3f95cb666f0e58b8f662099fc7 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 13:21:33 +0100 Subject: [PATCH 06/12] Update composer.json --- composer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/composer.json b/composer.json index 854dcb1..302cc1b 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,6 @@ }, "require-dev": { "phpunit/phpunit": "~5.5", - "enqueue/enqueue-dev": "dev-master", "enqueue/null": "^0.10@dev", "enqueue/test": "^0.10@dev", "enqueue/simple-client": "^0.10@dev" From 75e69465b6094879b36772ff746971de5594b563 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 13:28:23 +0100 Subject: [PATCH 07/12] Update composer.json --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 302cc1b..bdb2130 100644 --- a/composer.json +++ b/composer.json @@ -9,8 +9,7 @@ "illuminate/queue": "^6.0|^7.0|^8.0", "queue-interop/amqp-interop": "^0.8", "queue-interop/queue-interop": "^0.7|^0.8", - "enqueue/enqueue-dev": "dev-master", - "enqueue/dsn": "^0.10" + "enqueue/enqueue-dev": "dev-master" }, "require-dev": { "phpunit/phpunit": "~5.5", From ac4fbdb213b8d2ed297d47bafad6202e59e2249a Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 18:45:43 +0100 Subject: [PATCH 08/12] Added payload fallback --- src/Job.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/Job.php b/src/Job.php index c87a277..30b131a 100644 --- a/src/Job.php +++ b/src/Job.php @@ -9,6 +9,7 @@ use Interop\Queue\Context; use Interop\Queue\Exception\DeliveryDelayNotSupportedException; use Interop\Queue\Message; +use ReflectionClass; class Job extends BaseJob implements JobContract { @@ -65,6 +66,33 @@ public function fire() } } + /** + * In case the payload is not a serialised PHP message, provide a default fall back + * + * @return array + * @throws \ReflectionException + */ + public function payload() + { + if (empty(parent::payload())) { + $handlerClass = config('queue.connections.interop.handler'); + + if (! empty($handlerClass)) { + return [ + 'job' => $handlerClass + ]; + } else { + $className = new ReflectionClass(get_class($this)); + + return [ + 'job' => dirname($className->getFileName()) + ]; + } + } + + return parent::payload(); + } + /** * {@inheritdoc} */ From 8e597d892e12e7014be427b488f6bbd405b5cb63 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Wed, 24 Mar 2021 18:52:41 +0100 Subject: [PATCH 09/12] Added timeout support --- src/Job.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Job.php b/src/Job.php index 30b131a..3fd4ce3 100644 --- a/src/Job.php +++ b/src/Job.php @@ -58,9 +58,10 @@ public function delete() public function fire() { $handlerClass = config('queue.connections.interop.handler'); + $timeout = config('queue.connections.interop.timeout'); if (! empty($handlerClass)) { - return (new $handlerClass($this->consumer->receive()))->handle(); + return (new $handlerClass($this->consumer->receive($timeout)))->handle(); } else { return parent::fire(); } From 7e22bf03309d2faec10ab6052dc17fcc2d1bce47 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 25 Mar 2021 14:32:50 +0100 Subject: [PATCH 10/12] Make fetching the connection config variable based on the connection name --- src/Job.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/Job.php b/src/Job.php index 3fd4ce3..1e87547 100644 --- a/src/Job.php +++ b/src/Job.php @@ -57,8 +57,8 @@ public function delete() */ public function fire() { - $handlerClass = config('queue.connections.interop.handler'); - $timeout = config('queue.connections.interop.timeout'); + $handlerClass = config('queue.connections.' . $this->getConnectionName() . '.handler'); + $timeout = config('queue.connections.' . $this->getConnectionName() . '.timeout'); if (! empty($handlerClass)) { return (new $handlerClass($this->consumer->receive($timeout)))->handle(); @@ -76,18 +76,12 @@ public function fire() public function payload() { if (empty(parent::payload())) { - $handlerClass = config('queue.connections.interop.handler'); + $handlerClass = config('queue.connections.' . $this->getConnectionName() . '.handler'); if (! empty($handlerClass)) { return [ 'job' => $handlerClass ]; - } else { - $className = new ReflectionClass(get_class($this)); - - return [ - 'job' => dirname($className->getFileName()) - ]; } } From a8bd9ac15d79a6e6e472065a12b02332b0a40b79 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Mon, 2 Jan 2023 10:33:27 +0100 Subject: [PATCH 11/12] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index bdb2130..ebabda3 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,7 @@ "license": "MIT", "require": { "php": ">=7.1", - "illuminate/queue": "^6.0|^7.0|^8.0", + "illuminate/queue": "^9.0", "queue-interop/amqp-interop": "^0.8", "queue-interop/queue-interop": "^0.7|^0.8", "enqueue/enqueue-dev": "dev-master" From 89bd194177755b1718de2dc3af1f8ddcceb40922 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Mon, 2 Jan 2023 11:19:35 +0100 Subject: [PATCH 12/12] Update Worker.php --- src/Worker.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Worker.php b/src/Worker.php index 55b6210..a4eb99d 100644 --- a/src/Worker.php +++ b/src/Worker.php @@ -144,7 +144,7 @@ public function onPostMessageReceived(PostMessageReceived $context): void } } - public function stop($status = 0) + public function stop($status = 0, $options = null) { if ($this->interop) { $this->stopped = true; @@ -152,7 +152,7 @@ public function stop($status = 0) return; } - parent::stop($status); + parent::stop($status, $options); } }