Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
countMessagesInQueues example
$stamp
=
$this
->
findAmqpStamp
(
$envelope
)
;
$this
->
rejectAmqpEnvelope
(
$stamp
->
getAmqpEnvelope
(
)
,
$stamp
->
getQueueName
(
)
)
;
}
public
function
getMessageCount
(
)
: int
{
try
{
return
$this
->connection->
countMessagesInQueues
(
)
;
}
catch
(
\AMQPException
$exception
)
{
throw
new
TransportException
(
$exception
->
getMessage
(
)
, 0,
$exception
)
;
}
}
private
function
rejectAmqpEnvelope
(
\AMQPEnvelope
$amqpEnvelope
, string
$queueName
)
: void
{
try
{
$this
->connection->
nack
(
$amqpEnvelope
,
$queueName
, \AMQP_NOPARAM
)
;
}
catch
(
\AMQPException
$exception
)
{
throw
new
TransportException
(
$exception
->
getMessage
(
)
, 0,
$exception
)
;
}
$connection
= Connection::
fromDsn
(
getenv
(
'MESSENGER_AMQP_DSN'
)
)
;
$connection
->
setup
(
)
;
$connection
->
purgeQueues
(
)
;
$sender
=
new
AmqpSender
(
$connection
,
$serializer
)
;
$sender
->
send
(
new
Envelope
(
new
DummyMessage
(
'First'
)
)
)
;
$sender
->
send
(
new
Envelope
(
new
DummyMessage
(
'Second'
)
)
)
;
$sender
->
send
(
new
Envelope
(
new
DummyMessage
(
'Third'
)
)
)
;
sleep
(
1
)
; // give amqp a moment to have the messages ready
$this
->
assertSame
(
3,
$connection
->
countMessagesInQueues
(
)
)
;
}
private
function
waitForOutput
(
Process
$process
, string
$output
,
$timeoutInSeconds
= 10
)
{
$timedOutTime
=
time
(
)
+
$timeoutInSeconds
;
while
(
time
(
)
<
$timedOutTime
)
{
if
(
str_starts_with
(
$process
->
getOutput
(
)
,
$output
)
)
{
return
;
}