Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
StopWorkerOnSignalsListener example
use
Symfony\Component\Serializer\Encoder\JsonEncoder;
use
Symfony\Component\Serializer\Normalizer\ArrayDenormalizer;
use
Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
$serializer
=
new
Serializer
(
new
SerializerComponent\
Serializer
(
[
new
ObjectNormalizer
(
)
,
new
ArrayDenormalizer
(
)
]
,
[
'json' =>
new
JsonEncoder
(
)
]
)
)
;
$connection
= Connection::
fromDsn
(
getenv
(
'DSN'
)
)
;
$receiver
=
new
AmqpReceiver
(
$connection
,
$serializer
)
;
$eventDispatcher
=
new
EventDispatcher
(
)
;
$eventDispatcher
->
addSubscriber
(
new
StopWorkerOnSignalsListener
(
)
)
;
$eventDispatcher
->
addSubscriber
(
new
DispatchPcntlSignalListener
(
)
)
;
$worker
=
new
Worker
(
[
'the_receiver' =>
$receiver
]
,
new
class
(
)
implements
MessageBusInterface
{
public
function
dispatch
(
$envelope
, array
$stamps
=
[
]
)
: Envelope
{
echo
'Get envelope with message: '.
$envelope
->
getMessage
(
)
::
class
."\n";
echo
sprintf
(
"with stamps: %s\n",
json_encode
(
array_keys
(
$envelope
->
all
(
)
)
, \JSON_PRETTY_PRINT
)
)
;
sleep
(
30
)
;
echo
"Done.\n";