https://github.com/makasim/php-fpm-queue
Use php-fpm as a simple built-in async queue
https://github.com/makasim/php-fpm-queue
cgi fastcgi message-queue php php-fpm queue
Last synced: 7 months ago
JSON representation
Use php-fpm as a simple built-in async queue
- Host: GitHub
- URL: https://github.com/makasim/php-fpm-queue
- Owner: makasim
- License: mit
- Created: 2018-10-15T14:24:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-05-03T13:38:42.000Z (almost 5 years ago)
- Last Synced: 2025-04-01T22:14:29.471Z (10 months ago)
- Topics: cgi, fastcgi, message-queue, php, php-fpm, queue
- Language: PHP
- Size: 8.79 KB
- Stars: 115
- Watchers: 3
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PHP-FPM Async Queue
Use php-fpm as a simple built-in async queue. Based on interoperable queue interfaces [Queue Interop](https://github.com/queue-interop/queue-interop).
## Usage
```bash
composer makasim/php-fpm-queue:0.1.x-dev queue-interop/queue-interop:0.7.x-dev enqueue/dsn:0.9.x-dev
```
A sender script:
```php
createContext();
$queue = $context->createQueue('/app/worker.php');
$message = $context->createMessage('aBody');
$context->createProducer()->send($queue, $message);
```
A worker script:
```php
createContext();
// or
//$context = (new PhpFpmConnectionFactory('unix:///var/run/php/php7.1-fpm.sock'))->createContext();
$queue = $context->createQueue(__FILE__);
$consumer = $context->createConsumer($queue);
if ($message = $consumer->receiveNoWait()) {
// process message
$consumer->acknowledge($message);
}
```
Start PHP-FPM:
```bash
docker run -v `pwd`:/app -p 9000:9000 php:7.2-fpm
```
Send a message:
```bash
php sender.php
```
## Credits
Inspired by Benjamin post [Using php-fpm as a simple built-in async queue](https://tideways.com/profiler/blog/using-php-fpm-as-a-simple-built-in-async-queue)
## License
[MIT License](LICENSE)