Skip to content

Commit ce4092f

Browse files
committed
Add Beanstalkd Messenger bridge
1 parent ad4b29d commit ce4092f

File tree

6 files changed

+22
-0
lines changed

6 files changed

+22
-0
lines changed

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;
@@ -1672,6 +1673,10 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
16721673
$container->getDefinition('messenger.transport.sqs.factory')->addTag('messenger.transport_factory');
16731674
}
16741675

1676+
if (class_exists(BeanstalkdTransportFactory::class)) {
1677+
$container->getDefinition('messenger.transport.beanstalkd.factory')->addTag('messenger.transport_factory');
1678+
}
1679+
16751680
if (null === $config['default_bus'] && 1 === \count($config['buses'])) {
16761681
$config['default_bus'] = key($config['buses']);
16771682
}
@@ -1730,6 +1735,7 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
17301735
$container->removeDefinition('messenger.transport.amqp.factory');
17311736
$container->removeDefinition('messenger.transport.redis.factory');
17321737
$container->removeDefinition('messenger.transport.sqs.factory');
1738+
$container->removeDefinition('messenger.transport.beanstalkd.factory');
17331739
$container->removeAlias(SerializerInterface::class);
17341740
} else {
17351741
$container->getDefinition('messenger.transport.symfony_serializer')

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([

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
]);

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>

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'

Tests/DependencyInjection/FrameworkExtensionTest.php

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

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

663+
$this->assertTrue($container->hasDefinition('messenger.transport.beanstalkd'));
664+
$transportFactory = $container->getDefinition('messenger.transport.beanstalkd')->getFactory();
665+
$transportArguments = $container->getDefinition('messenger.transport.beanstalkd')->getArguments();
666+
667+
$this->assertEquals([new Reference('messenger.transport_factory'), 'createTransport'], $transportFactory);
668+
$this->assertCount(3, $transportArguments);
669+
$this->assertSame('beanstalkd://127.0.0.1:11300', $transportArguments[0]);
670+
671+
$this->assertTrue($container->hasDefinition('messenger.transport.beanstalkd.factory'));
672+
663673
$this->assertSame(10, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(0));
664674
$this->assertSame(7, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(1));
665675
$this->assertSame(3, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(2));

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy