12345678910111213141516171819202122232425262728293031 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\MessageQueue;
- /**
- * Class CallbackInvoker to invoke callbacks for consumer classes
- */
- class CallbackInvoker
- {
- /**
- * Run short running process
- *
- * @param QueueInterface $queue
- * @param int $maxNumberOfMessages
- * @param \Closure $callback
- * @return void
- */
- public function invoke(QueueInterface $queue, $maxNumberOfMessages, $callback)
- {
- for ($i = $maxNumberOfMessages; $i > 0; $i--) {
- do {
- $message = $queue->dequeue();
- } while ($message === null && (sleep(1) === 0));
- $callback($message);
- }
- }
- }
|