Skip to content

Commit 0c83c5d

Browse files
committed
Add Beanstalkd Messenger bridge
1 parent 5e02d86 commit 0c83c5d

26 files changed

+1243
-0
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
use Symfony\Component\Mailer\Mailer;
8585
use Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\AmazonSqsTransportFactory;
8686
use Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransportFactory;
87+
use Symfony\Component\Messenger\Bridge\Beanstalkd\Transport\BeanstalkdTransportFactory;
8788
use Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransportFactory;
8889
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
8990
use Symfony\Component\Messenger\MessageBus;
@@ -1669,6 +1670,10 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
16691670
$container->getDefinition('messenger.transport.sqs.factory')->addTag('messenger.transport_factory');
16701671
}
16711672

1673+
if (class_exists(BeanstalkdTransportFactory::class)) {
1674+
$container->getDefinition('messenger.transport.beanstalkd.factory')->addTag('messenger.transport_factory');
1675+
}
1676+
16721677
if (null === $config['default_bus'] && 1 === \count($config['buses'])) {
16731678
$config['default_bus'] = key($config['buses']);
16741679
}
@@ -1727,6 +1732,7 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
17271732
$container->removeDefinition('messenger.transport.amqp.factory');
17281733
$container->removeDefinition('messenger.transport.redis.factory');
17291734
$container->removeDefinition('messenger.transport.sqs.factory');
1735+
$container->removeDefinition('messenger.transport.beanstalkd.factory');
17301736
$container->removeAlias(SerializerInterface::class);
17311737
} else {
17321738
$container->getDefinition('messenger.transport.symfony_serializer')

src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\AmazonSqsTransportFactory;
1515
use Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransportFactory;
16+
use Symfony\Component\Messenger\Bridge\Beanstalkd\Transport\BeanstalkdTransportFactory;
1617
use Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransportFactory;
1718
use Symfony\Component\Messenger\EventListener\DispatchPcntlSignalListener;
1819
use Symfony\Component\Messenger\EventListener\SendFailedMessageForRetryListener;
@@ -123,6 +124,8 @@
123124

124125
->set('messenger.transport.sqs.factory', AmazonSqsTransportFactory::class)
125126

127+
->set('messenger.transport.beanstalkd.factory', BeanstalkdTransportFactory::class)
128+
126129
// retry
127130
->set('messenger.retry_strategy_locator')
128131
->args([

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_transports.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
],
2323
'failed' => 'in-memory:///',
2424
'redis' => 'redis://127.0.0.1:6379/messages',
25+
'beanstalkd' => 'beanstalkd://127.0.0.1:11300',
2526
],
2627
],
2728
]);

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_transports.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
</framework:transport>
2121
<framework:transport name="failed" dsn="in-memory:///" />
2222
<framework:transport name="redis" dsn="redis://127.0.0.1:6379/messages" />
23+
<framework:transport name="beanstalkd" dsn="beanstalkd://127.0.0.1:11300" />
2324
</framework:messenger>
2425
</framework:config>
2526
</container>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_transports.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ framework:
1919
max_delay: 100
2020
failed: 'in-memory:///'
2121
redis: 'redis://127.0.0.1:6379/messages'
22+
beanstalkd: 'beanstalkd://127.0.0.1:11300'

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,16 @@ public function testMessengerTransports()
639639

640640
$this->assertTrue($container->hasDefinition('messenger.transport.redis.factory'));
641641

642+
$this->assertTrue($container->hasDefinition('messenger.transport.beanstalkd'));
643+
$transportFactory = $container->getDefinition('messenger.transport.beanstalkd')->getFactory();
644+
$transportArguments = $container->getDefinition('messenger.transport.beanstalkd')->getArguments();
645+
646+
$this->assertEquals([new Reference('messenger.transport_factory'), 'createTransport'], $transportFactory);
647+
$this->assertCount(3, $transportArguments);
648+
$this->assertSame('beanstalkd://127.0.0.1:11300', $transportArguments[0]);
649+
650+
$this->assertTrue($container->hasDefinition('messenger.transport.beanstalkd.factory'));
651+
642652
$this->assertSame(10, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(0));
643653
$this->assertSame(7, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(1));
644654
$this->assertSame(3, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(2));
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/Tests export-ignore
2+
/phpunit.xml.dist export-ignore
3+
/.gitignore export-ignore
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
vendor/
2+
composer.lock
3+
phpunit.xml
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CHANGELOG
2+
=========
3+
4+
5.2.0
5+
-----
6+
7+
* Introduced the Beanstalkd bridge.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Copyright (c) 2018-2020 Fabien Potencier
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy
4+
of this software and associated documentation files (the "Software"), to deal
5+
in the Software without restriction, including without limitation the rights
6+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7+
copies of the Software, and to permit persons to whom the Software is furnished
8+
to do so, subject to the following conditions:
9+
10+
The above copyright notice and this permission notice shall be included in all
11+
copies or substantial portions of the Software.
12+
13+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19+
THE SOFTWARE.

0 commit comments

Comments
 (0)