Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0411a2e

Browse files
committed
add readme
1 parent 58d6cd9 commit 0411a2e

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

‎README.md‎

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# PHP-FPM Async Queue
2+
3+
Use php-fpm as a simple built-in async queue. Based on interoperable queue interfaces [Queue Interop](https://github.com/queue-interop/queue-interop).
4+
5+
## Usage
6+
7+
```bash
8+
composer makasim/php-fpm-queue:0.1.x-dev queue-interop/queue-interop:0.7.x-dev enqueue/dsn:0.9.x-dev
9+
```
10+
11+
A sender script:
12+
13+
```php
14+
<?php
15+
# sender.php
16+
17+
use Makasim\PhpFpm\PhpFpmConnectionFactory;
18+
19+
require_once __DIR__.'/vendor/autoload.php';
20+
21+
$context = (new PhpFpmConnectionFactory('tcp://localhost:9000'))->createContext();
22+
23+
$queue = $context->createQueue('/app/worker.php');
24+
$message = $context->createMessage('aBody');
25+
26+
$context->createProducer()->send($queue, $message);
27+
```
28+
29+
A worker script:
30+
31+
32+
```php
33+
<?php
34+
# worker.php
35+
36+
use Makasim\PhpFpm\PhpFpmConnectionFactory;
37+
38+
require_once __DIR__.'/vendor/autoload.php';
39+
40+
$context = (new PhpFpmConnectionFactory('tcp://localhost:9000'))->createContext();
41+
42+
$queue = $context->createQueue(__FILE__);
43+
44+
$consumer = $context->createConsumer($queue);
45+
46+
if ($message = $consumer->receiveNoWait()) {
47+
// process message
48+
49+
$consumer->acknowledge($message);
50+
}
51+
```
52+
53+
Start PHP-FPM:
54+
55+
```bash
56+
docker run -v `pwd`:/app -p 9000:9000 php:7.2-fpm
57+
```
58+
59+
Send a message:
60+
61+
```bash
62+
php sender.php
63+
```
64+
65+
## Credits
66+
67+
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)
68+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /