balpom / symfony-messenger-sqlite
How to initialize and to use a Symfony Messenger with queues in SQLite database without Doctrine.
Requires
- php: >=8.1
- balpom/sql-messenger: >=1.0.0
- php-di/php-di: >=7.0
- symfony/cache: >=6.4
- symfony/console: >=6.4
- symfony/event-dispatcher: >=6.4
- symfony/messenger: >=6.4
README
A simple example showing how to initialize and to use a Symfony Messenger with queues in SQLite database without Doctrine.
It is modified example from https://github.com/balpom/symfony-messenger-sample, which use Doctrine https://github.com/symfony/doctrine-messenger as message transport.
This example use https://github.com/balpom/sql-messenger as transport. It use SQLite database by PDO and without Doctrine.
Everything was tested in Linux.
Requirements
- PHP >= 8.1
Installation
Using composer (recommended)
composer create balpom/symfony-messenger-sqlite
How to use
Simple test
Open console window. Run the command:
php bin/console messenger:consume sql-async
It starts simple Worker, which imitate SMS sending. Now it is waiting for messages to be sent from the queue, which is still empty.
Open another console window. Run the command:
php tests/send.php
It runs a simple script that adds several messages to the queue. After this, in first console window you may see, how Worker "sending" SMS.
Run the command:
php bin/console messenger:stop-workers
It stop Worker execution.
Advanced test
Open multiple consoles. In each of them, run the command:
php bin/console messenger:consume sql-async
It starts many simple Workers, which imitate SMS sending. Now it is waiting for messages to be sent from the queue, which is still empty.
Open one more console window. Run the command:
php tests/sendmany.php
It runs a simple script that adds many several messages to the queue. After this, in previously opened consoles you may see, how several Workers "sending" SMS.
Run the command:
php bin/console messenger:stop-workers
It stop all Workers executions.