File tree 2 files changed +46
-0
lines changed
2 files changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Client extensions.
2
+
3
+ There is an ability to hook into sending process. You have to create an extension class that implements ` Enqueue\Client\ExtensionInterface ` interface.
4
+ For example, ` TimestampMessageExtension ` extension adds timestamps every message before sending it to MQ.
5
+
6
+ ``` php
7
+ <?php
8
+ namespace Acme;
9
+
10
+ use Enqueue\Client\ExtensionInterface;
11
+ use Enqueue\Client\Message;
12
+
13
+ class TimestampMessageExtension implements ExtensionInterface
14
+ {
15
+ public function onPreSend($topic, Message $message)
16
+ {
17
+ if ($message->getTimestamp()) {
18
+ $message->setTimestamp(time());
19
+ }
20
+ }
21
+
22
+ public function onPostSend($topic, Message $message)
23
+ {
24
+
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Symfony
30
+
31
+ To use the extension in Symfony, you have to register it as a container service with a special tag.
32
+
33
+ ``` yaml
34
+ # config/services.yaml
35
+
36
+ services :
37
+ timestamp_message_extension :
38
+ class : Acme\TimestampMessageExtension
39
+ tags :
40
+ - { name: 'enqueue.client.extensions' }
41
+ ` ` `
42
+
43
+ You can add ` priority` attribute with a number. The higher value you set the earlier the extension is called.
44
+
45
+ [back to index](../index.md)
Original file line number Diff line number Diff line change 22
22
- [ Supported brokers] ( client/supported_brokers.md )
23
23
- [ Message bus] ( client/message_bus.md )
24
24
- [ RPC call] ( client/rpc_call.md )
25
+ - [ Extensions] ( client/extensions.md )
25
26
* [ Job queue] ( #job-queue )
26
27
- [ Run unique job] ( job_queue/run_unique_job.md )
27
28
- [ Run sub job(s)] ( job_queue/run_sub_job.md )
You can’t perform that action at this time.
0 commit comments