php fpm queue
0.1.2: Merge pull request #4 from sunkan
使用PHP-FPM作为简单的内置异步队列。基于可互操作的队列接口队列互动。
composer makasim/php-fpm-queue:0.1.x-dev queue-interop/queue-interop:0.7.x-dev enqueue/dsn:0.9.x-dev发件人脚本:
<?php
# sender.php
use Makasim PhpFpm PhpFpmConnectionFactory ;
require_once __DIR__ . ' /vendor/autoload.php ' ;
$ context = ( new PhpFpmConnectionFactory ( ' tcp://localhost:9000 ' ))-> createContext ();
$ queue = $ context -> createQueue ( ' /app/worker.php ' );
$ message = $ context -> createMessage ( ' aBody ' );
$ context -> createProducer ()-> send ( $ queue , $ message );一个工作脚本:
<?php
# worker.php
use Makasim PhpFpm PhpFpmConnectionFactory ;
require_once __DIR__ . ' /vendor/autoload.php ' ;
$ context = ( new PhpFpmConnectionFactory ( ' tcp://localhost:9000 ' ))-> 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 );
}启动php-fpm:
docker run -v ` pwd ` :/app -p 9000:9000 php:7.2-fpm发送消息:
php sender.phpBenjamin Post使用PHP-FPM作为简单的内置异步队列的启发
麻省理工学院许可证