Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit da79946

Browse files
[Messenger] subtract handling time from sleep time in worker
1 parent 732acf5 commit da79946

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/Symfony/Component/Messenger/Worker.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public function run(array $options = []): void
8787

8888
while (false === $this->shouldStop) {
8989
$envelopeHandled = false;
90+
$envelopeHandledStart = microtime(true);
9091
foreach ($this->receivers as $transportName => $receiver) {
9192
if ($queueNames) {
9293
$envelopes = $receiver->getFromQueues($queueNames);
@@ -113,10 +114,12 @@ public function run(array $options = []): void
113114
}
114115
}
115116

116-
if (false === $envelopeHandled) {
117+
if (!$envelopeHandled) {
117118
$this->dispatchEvent(new WorkerRunningEvent($this, true));
118119

119-
usleep($options['sleep']);
120+
if (0 < $sleep = (int) ($options['sleep'] - 1e6 * (microtime(true) - $envelopeHandledStart))) {
121+
usleep($sleep);
122+
}
120123
}
121124
}
122125

0 commit comments

Comments
 (0)