From 91b14a0c73005e1aa0c39bc6b8c97492dabb4e3f Mon Sep 17 00:00:00 2001 From: Denis Zunke Date: Thu, 31 Jul 2025 08:34:51 +0200 Subject: [PATCH] Add runWithStopCheck to replication factory --- src/MySQLReplication/MySQLReplicationFactory.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/MySQLReplication/MySQLReplicationFactory.php b/src/MySQLReplication/MySQLReplicationFactory.php index 9a692e6..ebff21c 100644 --- a/src/MySQLReplication/MySQLReplicationFactory.php +++ b/src/MySQLReplication/MySQLReplicationFactory.php @@ -104,6 +104,22 @@ public function run(): void } } + /** + * Run replication, checking $shouldStop callback on each iteration, to be able to gracefully stop the process. + * + * @param callable $shouldStop Returns true if the process should stop + */ + public function runWithStopCheck(callable $shouldStop): void + { + while (true) { + if ($shouldStop()) { + break; + } + + $this->consume(); + } + } + public function consume(): void { $this->event->consume();