Skip to content

Commit 853a740

Browse files
author
Pavel Janda
committed
Proper README, composer.json update
1 parent 66b0adc commit 853a740

File tree

2 files changed

+130
-9
lines changed

2 files changed

+130
-9
lines changed

README.md

+119-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,33 @@
1-
Example configuration:
1+
[![Latest Stable Version](https://poser.pugx.org/gamee/nette-rabbitmq/v/stable)](https://packagist.org/packages/gamee/nette-rabbitmq)
2+
[![License](https://poser.pugx.org/gamee/nette-rabbitmq/license)](https://packagist.org/packages/gamee/nette-rabbitmq)
3+
[![Total Downloads](https://poser.pugx.org/gamee/nette-rabbitmq/downloads)](https://packagist.org/packages/gamee/nette-rabbitmq)
4+
5+
# Nette RabbitMQ
6+
7+
Nette extension for RabbitMQ (using composer package [jakubkulhan/bunny](https://github.com/jakubkulhan/bunny))
8+
9+
## Example setup
10+
11+
### Downloading composer package
212

313
```
4-
services:
5-
- App\Queue\RabbitMq\Consumer\TestConsumer
14+
composer require gamee/nette-rabbitmq
15+
```
16+
17+
### Extension registration
618

19+
config.neon:
20+
21+
```
22+
extensions:
23+
rabbitmq: Gamee\RabbitMQ\DI\RabbitMQExtension
24+
```
25+
26+
### Example configuration
27+
28+
```
29+
services:
30+
- TestConsumer
731
832
rabbitmq:
933
connections:
@@ -32,5 +56,96 @@ rabbitmq:
3256
consumers:
3357
testConsumer:
3458
queue: testQueue
35-
callback: [@App\Queue\RabbitMq\Consumer\TestConsumer, consume]
59+
callback: [@TestConsumer, consume]
60+
```
61+
62+
### Publishing messages
63+
64+
services.neon:
65+
66+
```
67+
services:
68+
- TestQueue(@Gamee\RabbitMQ\Client::getProducer(testProducer))
69+
```
70+
71+
TestQueue.php:
72+
73+
```php
74+
<?php
75+
76+
declare(strict_types=1);
77+
78+
use Gamee\RabbitMQ\Producer\Producer;
79+
80+
final class TestQueue
81+
{
82+
83+
/**
84+
* @var Producer
85+
*/
86+
private $testReindexProducer;
87+
88+
89+
public function __construct(Producer $usersReindexProducer)
90+
{
91+
$this->usersReindexProducer = $usersReindexProducer;
92+
}
93+
94+
95+
public function publish(string $message): void
96+
{
97+
$json = json_encode(['message' => $message]);
98+
$headers = [];
99+
100+
$this->usersReindexProducer->publish($json, $headers);
101+
}
102+
103+
}
104+
```
105+
106+
### Consuming messages
107+
108+
Your consumer callback has to return a confirmation that particular message has been acknowledges (or different states - unack, reject).
109+
110+
TestConsumer.php
111+
112+
```php
113+
<?php
114+
115+
declare(strict_types=1);
116+
117+
use Bunny\Message;
118+
use Gamee\RabbitMQ\Consumer\IConsumer;
119+
120+
final class TestConsumer implements IConsumer
121+
{
122+
123+
public function consume(Message $message): int
124+
{
125+
$messageData = json_decode($message->content);
126+
127+
$headers = $message->headers;
128+
129+
/**
130+
* @todo Some logic here...
131+
*/
132+
133+
return IConsumer::MESSAGE_ACK; // Or ::MESSAGE_NACK || ::MESSAGE_REJECT
134+
}
135+
136+
}
137+
```
138+
139+
### Running a consumer trough CLI
140+
141+
There are two consumer commands prepared. `rabbitmq:consumer` wiil consume messages for specified amount of time (in seconds). Following command wiil be consuming messages for one hour:
142+
143+
```
144+
php index.php rabbitmq:consumer testConsumer 3600
145+
```
146+
147+
`rabbitmq:staticConsumer` will consume particular amount of messages. Following example will consume just 20 messages:
148+
149+
```
150+
php index.php rabbitmq:staticConsumer testConsumer 20
36151
```

composer.json

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
{
2-
"name": "gamee-backend/gamee-rabbitmq",
2+
"name": "gamee/nette-rabbitmq",
33
"type": "library",
4-
"homepage": "https://gitlab.cleevio.cz/gamee-backend/gamee-redis",
4+
"license": "MIT",
5+
"homepage": "https://github.com/gameeapp/nette-rabbitmq",
6+
"keywords": ["rabbitmq","rabbit","bunnyphp","bunny","nette","extension","php"],
57
"support": {
6-
"issues": "https://gitlab.cleevio.cz/gamee-backend/gamee-redis/issues"
8+
"issues": "https://github.com/gameeapp/nette-rabbitmq/issues"
79
},
10+
"authors": [
11+
{
12+
"name": "Pavel Janda"
13+
}
14+
],
815
"autoload": {
916
"psr-4": {
1017
"Gamee\\RabbitMQ\\": "src/"
@@ -20,7 +27,6 @@
2027
"kdyby/console": "~2.6.1"
2128
},
2229
"require-dev": {
23-
"tracy/tracy": "^2.4",
24-
"nette/tester": "^1.7"
30+
"tracy/tracy": "^2.4"
2531
}
2632
}

0 commit comments

Comments
 (0)