11<p align =" center " >
2- <img alt="chunk Logo" src="https://raw.githubusercontent.com/clivern/chunk/master/assets/img/gopher.png?v=1.0.1 " width="180" />
2+ <img alt="chunk Logo" src="https://raw.githubusercontent.com/clivern/chunk/master/assets/img/gopher.png?v=1.2.0 " width="180" />
33 <h3 align="center">Chunk</h3>
44 <p align="center">Asynchronous Task Queue Based on Distributed Message Passing for PHP</p>
55 <p align="center">
66 <a href="https://travis-ci.com/Clivern/Chunk"><img src="https://travis-ci.com/Clivern/Chunk.svg?branch=master"></a>
7- <a href="https://packagist.org/packages/clivern/chunk"><img src="https://img.shields.io/badge/Version-1.0.1 -red.svg"></a>
7+ <a href="https://packagist.org/packages/clivern/chunk"><img src="https://img.shields.io/badge/Version-1.2.0 -red.svg"></a>
88 <a href="https://github.com/Clivern/Chunk/blob/master/LICENSE"><img src="https://img.shields.io/badge/LICENSE-MIT-orange.svg"></a>
99 </p>
1010</p >
@@ -30,6 +30,7 @@ First create event handlers. Chunk supports these events
3030- ` EventInterface::ON_MESSAGE_FAILED_EVENT `
3131- ` EventInterface::ON_MESSAGE_HANDLED_EVENT `
3232- ` EventInterface::ON_MESSAGE_SENT_EVENT `
33+ - ` EventInterface::ON_MESSAGE_SEND_FAILURE_EVENT `
3334
3435``` php
3536use Clivern\Chunk\Contract\MessageInterface;
@@ -49,7 +50,7 @@ class MessageReceivedEvent implements EventInterface
4950 /**
5051 * {@inheritdoc}
5152 */
52- public function invoke(MessageInterface $message)
53+ public function invoke(MessageInterface $message, $exception = null )
5354 {
5455 var_dump(sprintf('Message Received Event: %s', (string) $message));
5556 }
@@ -68,7 +69,7 @@ class MessageFailedEvent implements EventInterface
6869 /**
6970 * {@inheritdoc}
7071 */
71- public function invoke(MessageInterface $message)
72+ public function invoke(MessageInterface $message, $exception = null )
7273 {
7374 var_dump(sprintf('Message Failed Event: %s', (string) $message));
7475 }
@@ -87,7 +88,7 @@ class MessageHandledEvent implements EventInterface
8788 /**
8889 * {@inheritdoc}
8990 */
90- public function invoke(MessageInterface $message)
91+ public function invoke(MessageInterface $message, $exception = null )
9192 {
9293 var_dump(sprintf('Message Handled Event: %s', (string) $message));
9394 }
@@ -106,16 +107,37 @@ class MessageSentEvent implements EventInterface
106107 /**
107108 * {@inheritdoc}
108109 */
109- public function invoke(MessageInterface $message)
110+ public function invoke(MessageInterface $message, $exception = null )
110111 {
111112 var_dump(sprintf('Message Sent Event: %s', (string) $message));
112113 }
113114}
114115
116+ class MessageSendFailureEvent implements EventInterface
117+ {
118+ /**
119+ * {@inheritdoc}
120+ */
121+ public function getType(): string
122+ {
123+ return EventInterface::ON_MESSAGE_SEND_FAILURE_EVENT;
124+ }
125+
126+ /**
127+ * {@inheritdoc}
128+ */
129+ public function invoke(MessageInterface $message, $exception = null)
130+ {
131+ var_dump(sprintf('Message Send Failure Event: %s', (string) $message));
132+ var_dump(sprintf('Error raised: %s', $exception->getMessage()));
133+ }
134+ }
135+
115136$eventHandler = new EventHandler();
116137$eventHandler->addEvent(new MessageReceivedEvent())
117138 ->addEvent(new MessageFailedEvent())
118139 ->addEvent(new MessageHandledEvent())
140+ ->addEvent(new MessageSendFailureEvent())
119141 ->addEvent(new MessageSentEvent());
120142```
121143
@@ -205,9 +227,9 @@ $sender->connect();
205227
206228$message = new Message();
207229$message->setId(1)
208- ->setUuid('f9714a92-2129-44e6-9ef4-8eebc2e33958')
230+ ->setUuid('f9714a92-2129-44e6-9ef4-8eebc2e33958') // or leave & chunk will generate a uuid
209231 ->setPayload('something')
210- ->setHandlerType('serviceA.processOrder');
232+ ->setHandlerType('serviceA.processOrder'); // same as the one defined in ProcessOrderMessageHandler class -> getType method
211233
212234$sender->send($message);
213235$sender->disconnect();
0 commit comments