Skip to content

Commit d5e2f97

Browse files
authored
Merge pull request #36 from kdambekalns/2.0
BUGFIX: Pass named arguments to executeCommand
2 parents 97eff7a + 0d985ce commit d5e2f97

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

Classes/Command/JobCommandController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public function executeCommand($queue, $messageCacheIdentifier)
154154
}
155155

156156
/** @var Message $message */
157-
$message = unserialize($this->messageCache->get($messageCacheIdentifier));
157+
$message = $this->messageCache->get($messageCacheIdentifier);
158158
$queue = $this->queueManager->getQueue($queue);
159159
$this->jobManager->executeJobForMessage($queue, $message);
160160
}

Classes/Job/JobManager.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ public function waitAndExecute($queueName, $timeout = null)
100100
try {
101101
if (isset($queueSettings['executeIsolated']) && $queueSettings['executeIsolated'] === true) {
102102
$messageCacheIdentifier = sha1(serialize($message));
103-
$this->messageCache->set($messageCacheIdentifier, serialize($message));
104-
Scripts::executeCommand('flowpack.jobqueue.common:job:execute', $this->flowSettings, false, [$queue->getName(), $messageCacheIdentifier]);
103+
$this->messageCache->set($messageCacheIdentifier, $message);
104+
Scripts::executeCommand('flowpack.jobqueue.common:job:execute', $this->flowSettings, false, ['queue' => $queue->getName(), 'messageCacheIdentifier' => $messageCacheIdentifier]);
105105
$this->messageCache->remove($messageCacheIdentifier);
106106
} else {
107107
$this->executeJobForMessage($queue, $message);

Classes/Queue/FakeQueue.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
*/
1313

1414
use Neos\Flow\Annotations as Flow;
15+
use Neos\Cache\Frontend\VariableFrontend;
1516
use Neos\Flow\Core\Booting\Scripts;
1617
use Neos\Flow\Utility\Algorithms;
1718

@@ -38,6 +39,12 @@ class FakeQueue implements QueueInterface
3839
*/
3940
protected $async = false;
4041

42+
/**
43+
* @Flow\Inject
44+
* @var VariableFrontend
45+
*/
46+
protected $messageCache;
47+
4148
/**
4249
* @param string $name
4350
* @param array $options
@@ -76,7 +83,11 @@ public function submit($payload, array $options = [])
7683
{
7784
$messageId = Algorithms::generateUUID();
7885
$message = new Message($messageId, $payload);
79-
$commandArguments = [$this->name, base64_encode(serialize($message))];
86+
87+
$messageCacheIdentifier = sha1(serialize($message));
88+
$this->messageCache->set($messageCacheIdentifier, $message);
89+
$commandArguments = ['queue' => $this->name, 'messageCacheIdentifier' => $messageCacheIdentifier];
90+
8091
if ($this->async) {
8192
if (!method_exists(Scripts::class, 'executeCommandAsync')) {
8293
throw new \RuntimeException('The "async" flag is set, but the currently used Flow version doesn\'t support this (Flow 3.3+ is required)', 1469116604);
@@ -149,7 +160,7 @@ public function count()
149160
*/
150161
public function flush()
151162
{
152-
//
163+
// The FakeQueue does not support message flushing
153164
}
154165

155166
}

0 commit comments

Comments
 (0)