From c8507a58e05d1fada08701c8cd80e6a77661bb82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Malling?= Date: Tue, 28 Jan 2020 16:32:58 +0100 Subject: [PATCH] [FEATURE] Persist unpersisted changes in CLI after messageFinished signal Once a `messageFinished` signal is emitted, the Persistence Manager persist all unpersisted changes. This is to have the jobmanager act as a normal CLI command, known from the a CommandController command --- Classes/Package.php | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Classes/Package.php diff --git a/Classes/Package.php b/Classes/Package.php new file mode 100644 index 0000000..d60ebad --- /dev/null +++ b/Classes/Package.php @@ -0,0 +1,33 @@ +getSignalSlotDispatcher(); + + $dispatcher->connect(JobManager::class, 'messageFinished', function (QueueInterface $queue, Message $message) use ($bootstrap) { + /** @var PersistenceManagerInterface $persistenceManager */ + $persistenceManager = $bootstrap->getObjectManager()->get(PersistenceManagerInterface::class); + + if ($persistenceManager->hasUnpersistedChanges()) { + $persistenceManager->persistAll(); + } + }); + } + } +}