All Projects → makasim → Php Fpm Queue

makasim / Php Fpm Queue

Licence: mit
Use php-fpm as a simple built-in async queue

Projects that are alternatives of or similar to Php Fpm Queue

fs
[READ-ONLY] Enterprise queue solutions for PHP. Filesystem transport.
Stars: ✭ 32 (-68.93%)
Mutual labels:  queue, message-queue
Xxl Mq
A lightweight distributed message queue framework.(分布式消息队列XXL-MQ)
Stars: ✭ 358 (+247.57%)
Mutual labels:  queue, message-queue
dynamic-queue
The dynamic queue
Stars: ✭ 17 (-83.5%)
Mutual labels:  queue, message-queue
Message Bus
Go simple async message bus
Stars: ✭ 166 (+61.17%)
Mutual labels:  queue, message-queue
Siberite
Siberite is a simple, lightweight, leveldb backed message queue written in Go.
Stars: ✭ 583 (+466.02%)
Mutual labels:  queue, message-queue
Redis Smq
A simple high-performance Redis message queue for Node.js.
Stars: ✭ 230 (+123.3%)
Mutual labels:  queue, message-queue
jrsmq
A lightweight message queue for Java that requires no dedicated queue server. Just a Redis server.
Stars: ✭ 28 (-72.82%)
Mutual labels:  queue, message-queue
orkid-node
Reliable and modern Redis Streams based task queue for Node.js 🤖
Stars: ✭ 61 (-40.78%)
Mutual labels:  queue, message-queue
Taskq
Golang asynchronous task/job queue with Redis, SQS, IronMQ, and in-memory backends
Stars: ✭ 555 (+438.83%)
Mutual labels:  queue, message-queue
Nsq
A realtime distributed messaging platform (forked from https://github.com/nsqio/nsq)
Stars: ✭ 476 (+362.14%)
Mutual labels:  queue, message-queue
Bull
Premium Queue package for handling distributed jobs and messages in NodeJS.
Stars: ✭ 11,748 (+11305.83%)
Mutual labels:  queue, message-queue
Toro
Multithreaded message processing on Postgres
Stars: ✭ 39 (-62.14%)
Mutual labels:  queue, message-queue
Rsmq
Redis Simple Message Queue
Stars: ✭ 1,556 (+1410.68%)
Mutual labels:  queue, message-queue
microq
Micro job queue built on mongo
Stars: ✭ 67 (-34.95%)
Mutual labels:  queue, message-queue
Nsq
A realtime distributed messaging platform
Stars: ✭ 20,663 (+19961.17%)
Mutual labels:  queue, message-queue
Storage Based Queue
Javascript queue library with persistent storage based queue mechanism for the browsers environments. Specially designed for offline.
Stars: ✭ 33 (-67.96%)
Mutual labels:  queue, message-queue
Kubemq
KubeMQ is Enterprise-grade message broker native for Docker and Kubernetes
Stars: ✭ 58 (-43.69%)
Mutual labels:  queue, message-queue
Audioplayermanager
⚠️ No longer maintained ⚠️ Small Swift Wrapper and Queue-Manager around AVPlayer which let you play MediaPlayer items and stream songs from URLs.
Stars: ✭ 78 (-24.27%)
Mutual labels:  queue
Java Notes
📚 计算机科学基础知识、Java开发、后端/服务端、面试相关 📚 computer-science/Java-development/backend/interview
Stars: ✭ 1,284 (+1146.6%)
Mutual labels:  message-queue
Miniqueue
A simple, single binary, message queue.
Stars: ✭ 77 (-25.24%)
Mutual labels:  queue

PHP-FPM Async Queue

Use php-fpm as a simple built-in async queue. Based on interoperable queue interfaces Queue Interop.

Usage

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
# 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);

A worker script:

<?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);
}

Start PHP-FPM:

docker run -v `pwd`:/app -p 9000:9000 php:7.2-fpm

Send a message:

php sender.php

Credits

Inspired by Benjamin post Using php-fpm as a simple built-in async queue

License

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].