Skip to content

Commit d4507dc

Browse files
committed
DBAL транспорт.
1 parent 57029af commit d4507dc

File tree

5 files changed

+85
-5
lines changed

5 files changed

+85
-5
lines changed

.settings.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
'className' => \Proklung\Redis\Samples\FooRabbitProcessor::class,
2626
'tags' => ['name' => 'enqueue.topic_subscriber', 'client' => 'rabbit']
2727
],
28+
// Пример клиента на Dbal
29+
'Proklung\Redis\Samples\FooDbalProcessor' => [
30+
'className' => \Proklung\Redis\Samples\FooDbalProcessor::class,
31+
'tags' => ['name' => 'enqueue.topic_subscriber', 'client' => 'dbal']
32+
],
2833
],
2934
'readonly' => false,
3035
],

install/version.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

33
$arModuleVersion = [
4-
'VERSION' => '1.2.0',
5-
'VERSION_DATE' => '2021-07-16'
4+
'VERSION' => '1.2.1',
5+
'VERSION_DATE' => '2021-07-18'
66
];

lang/ru/install/index.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
$MESS['REDIS_MODULE_NAME'] = 'Очереди на Redis (и на RabbitMq, и Filesystem)';
4-
$MESS['REDIS_MODULE_DESCRIPTION'] = 'Очереди на Redis (и на RabbitMq, и Filesystem)';
3+
$MESS['REDIS_MODULE_NAME'] = 'Очереди на Redis (и на RabbitMq, и Filesystem, и через DBAL)';
4+
$MESS['REDIS_MODULE_DESCRIPTION'] = 'Очереди на Redis (и на RabbitMq, и Filesystem, и через DBAL)';
55
$MESS['REDIS_MODULE_PARTNER_NAME'] = 'ProklUng';
66
$MESS['REDIS_MODULE_PARTNER_URI'] = 'https://github.com/ProklUng/bitrix.redis.module';

lib/Samples/FooDbalProcessor.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace Proklung\Redis\Samples;
4+
5+
use Interop\Queue\Message;
6+
use Interop\Queue\Context;
7+
use Interop\Queue\Processor;
8+
use Enqueue\Client\TopicSubscriberInterface;
9+
10+
/**
11+
* Class FooDbalProcessor
12+
* @package Proklung\Redis\Samples
13+
*/
14+
class FooDbalProcessor implements Processor, TopicSubscriberInterface
15+
{
16+
public function process(Message $message, Context $session)
17+
{
18+
file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/dbal-bitrix.log', $message->getBody());
19+
20+
return self::ACK;
21+
// return self::REJECT; // when the message is broken
22+
// return self::REQUEUE; // the message is fine but you want to postpone processing
23+
}
24+
25+
public static function getSubscribedTopics()
26+
{
27+
return ['dbal-event'];
28+
}
29+
}

readme.MD

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- Redis
66
- RabbitMq
77
- Filesystem
8-
8+
- DBAL
99
## Установка
1010

1111
composer.json основного проекта:
@@ -237,6 +237,52 @@ php bin/enqueue enqueue:consume --client=rabbit
237237

238238
Где `rabbit` - название клиента, определяемое в `.settings.php` Битрикса.
239239

240+
### DBAL
241+
242+
#### Установка
243+
244+
Дабы не отягощать модуль зависимостями - `enqueue/dbal` не включен в стандартный `composer.json`. Для использования
245+
этого транспорта нужно самолично запустить `composer require enqueue/dbal` в конечном проекте.
246+
247+
#### Настройка
248+
249+
`.settings.php` Битрикса:
250+
251+
```php
252+
// ... предыдущее
253+
254+
'proklung.redis' => [
255+
'value' => [
256+
'enqueue' => [
257+
// ... предыдущее
258+
'dbal' => [
259+
'transport' => 'mysql://root:@localhost/bitrix.loc',
260+
'client' => [
261+
'default_queue' => 'default',
262+
'prefix' => 'dbal',
263+
'app_name' => 'fedy',
264+
],
265+
],
266+
]
267+
]
268+
],
269+
```
270+
271+
Все по аналогии с Redis или файловой системой. Важно первый раз не забыть запустить `setup-broker` (будет создана
272+
таблица `enqueue`):
273+
274+
```bash
275+
php bin/enqueue enqueue:setup-broker --client=dbal
276+
```
277+
278+
#### Получение сообщений
279+
280+
```bash
281+
php bin/enqueue enqueue:consume --client=dbal
282+
```
283+
284+
Где `dbal` - название клиента, определяемое в `.settings.php` Битрикса.
285+
240286
### Файловая система
241287

242288
#### Настройка

0 commit comments

Comments
 (0)