slickdeals / gearman-messenger
Symfony Gearman Messenger Bridge
Installs: 4 721
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 17
Forks: 3
Open Issues: 3
Requires
- php: >=7.2.5
- ext-gearman: >=2.0
- ext-json: *
- symfony/messenger: ^5.1|^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- phpunit/phpunit: ^9.5
- symfony/serializer: ^4.4|^5.0|^6.0
- vimeo/psalm: ^4.6
This package is auto-updated.
Last update: 2024-10-31 15:21:58 UTC
README
Provides Gearman integration for Symfony Messenger.
Installation
composer require slickdeals/gearman-messenger
Usage
You will need to add a service to create the transport factory.
# config/services.yaml services: SD\Gearman\Transport\GearmanTransportFactory: tags: [ messenger.transport_factory ]
To configure the transport, you'll need to provide a DSN with host, port, and job names. You can specify multiple job names to allow the transport to pull work from multiple Gearman job queues. Routing of messages to handlers in Messenger will still be based on what workload is decoded.
framework: messenger: transports: gearman: # DSN will use defaults dsn: "gearman://" # dsn: 'gearman://<host>:<port>?job_names[]=<job1>&timeout=100'
This allows you to have a single transport will support all of your messages, but it does not prevent you from setting up multiple transports that each handle their own set of messages.
Specify Multiple Hosts
You can also pass an array of host:port strings as an option to connect to multiple Gearman Job Servers. Keep the DSN simple as the DSN overrides options.
framework: messenger: transports: gearman: dsn: "gearman://" options: hosts: - gearman1:4730 - gearman2:4730 # ...