Skip to content

Commit

Permalink
Merge pull request #36 from kdambekalns/2.0
Browse files Browse the repository at this point in the history
BUGFIX: Pass named arguments to executeCommand
  • Loading branch information
dimaip authored Sep 5, 2018
2 parents 97eff7a + 0d985ce commit d5e2f97
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Classes/Command/JobCommandController.php
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ public function executeCommand($queue, $messageCacheIdentifier)
}

/** @var Message $message */
$message = unserialize($this->messageCache->get($messageCacheIdentifier));
$message = $this->messageCache->get($messageCacheIdentifier);
$queue = $this->queueManager->getQueue($queue);
$this->jobManager->executeJobForMessage($queue, $message);
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Job/JobManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ public function waitAndExecute($queueName, $timeout = null)
try {
if (isset($queueSettings['executeIsolated']) && $queueSettings['executeIsolated'] === true) {
$messageCacheIdentifier = sha1(serialize($message));
$this->messageCache->set($messageCacheIdentifier, serialize($message));
Scripts::executeCommand('flowpack.jobqueue.common:job:execute', $this->flowSettings, false, [$queue->getName(), $messageCacheIdentifier]);
$this->messageCache->set($messageCacheIdentifier, $message);
Scripts::executeCommand('flowpack.jobqueue.common:job:execute', $this->flowSettings, false, ['queue' => $queue->getName(), 'messageCacheIdentifier' => $messageCacheIdentifier]);
$this->messageCache->remove($messageCacheIdentifier);
} else {
$this->executeJobForMessage($queue, $message);
Expand Down
15 changes: 13 additions & 2 deletions Classes/Queue/FakeQueue.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*/

use Neos\Flow\Annotations as Flow;
use Neos\Cache\Frontend\VariableFrontend;
use Neos\Flow\Core\Booting\Scripts;
use Neos\Flow\Utility\Algorithms;

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

/**
* @Flow\Inject
* @var VariableFrontend
*/
protected $messageCache;

/**
* @param string $name
* @param array $options
Expand Down Expand Up @@ -76,7 +83,11 @@ public function submit($payload, array $options = [])
{
$messageId = Algorithms::generateUUID();
$message = new Message($messageId, $payload);
$commandArguments = [$this->name, base64_encode(serialize($message))];

$messageCacheIdentifier = sha1(serialize($message));
$this->messageCache->set($messageCacheIdentifier, $message);
$commandArguments = ['queue' => $this->name, 'messageCacheIdentifier' => $messageCacheIdentifier];

if ($this->async) {
if (!method_exists(Scripts::class, 'executeCommandAsync')) {
throw new \RuntimeException('The "async" flag is set, but the currently used Flow version doesn\'t support this (Flow 3.3+ is required)', 1469116604);
Expand Down Expand Up @@ -149,7 +160,7 @@ public function count()
*/
public function flush()
{
//
// The FakeQueue does not support message flushing
}

}

0 comments on commit d5e2f97

Please sign in to comment.