All Projects → limitium → zmq

limitium / zmq

Licence: other
ZeroMQ based distributed patterns

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to zmq

tasq
A simple task queue implementation to enqeue jobs on local or remote processes.
Stars: ✭ 83 (+207.41%)
Mutual labels:  queue, distributed-computing, zmq
Simpleue
PHP queue worker and consumer - Ready for AWS SQS, Redis, Beanstalkd and others.
Stars: ✭ 124 (+359.26%)
Mutual labels:  queue, workers
Workq
Job server in Go
Stars: ✭ 1,546 (+5625.93%)
Mutual labels:  queue, workers
meesee
Task queue, Long lived workers for work based parallelization, with processes and Redis as back-end. For distributed computing.
Stars: ✭ 14 (-48.15%)
Mutual labels:  workers, distributed-computing
Toro
Multithreaded message processing on Postgres
Stars: ✭ 39 (+44.44%)
Mutual labels:  queue, workers
Qutee
PHP Background Jobs (Tasks) Manager
Stars: ✭ 63 (+133.33%)
Mutual labels:  queue, workers
taskinator
A simple orchestration library for running complex processes or workflows in Ruby
Stars: ✭ 25 (-7.41%)
Mutual labels:  workers, distributed-computing
hatrack
Fast, multi-reader, multi-writer, lockless data structures for parallel programming
Stars: ✭ 55 (+103.7%)
Mutual labels:  queue, parallel
theeye-of-sauron
TheEye Dockers and QuickStart
Stars: ✭ 27 (+0%)
Mutual labels:  queue, workers
dynamic-queue
The dynamic queue
Stars: ✭ 17 (-37.04%)
Mutual labels:  queue, zeromq
Sidekiq Job Php
Push and schedule jobs to Sidekiq from PHP
Stars: ✭ 34 (+25.93%)
Mutual labels:  queue, workers
napalm-logs
Cross-vendor normalisation for network syslog messages, following the OpenConfig and IETF YANG models
Stars: ✭ 131 (+385.19%)
Mutual labels:  zeromq, zmq
Honeydew
Job Queue for Elixir. Clustered or Local. Straight BEAM. Optional Ecto. 💪🍈
Stars: ✭ 670 (+2381.48%)
Mutual labels:  queue, workers
Bokeh
Bokeh is a simple, scalable and blazing-fast task queue built on Node.js and ZeroMQ.
Stars: ✭ 67 (+148.15%)
Mutual labels:  queue, zeromq
celery.node
Celery task queue client/worker for nodejs
Stars: ✭ 164 (+507.41%)
Mutual labels:  queue, workers
IPpy
🚀 Ping IP addresses and domains in parallel to find the accessible and inaccessible ones.
Stars: ✭ 54 (+100%)
Mutual labels:  parallel, workers
Sleuth
A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services
Stars: ✭ 331 (+1125.93%)
Mutual labels:  zeromq, distributed-computing
Libzmq
ZeroMQ core engine in C++, implements ZMTP/3.1
Stars: ✭ 7,418 (+27374.07%)
Mutual labels:  zeromq, zmq
noroutine
Goroutine analogue for Node.js, spreads I/O-bound routine calls to utilize thread pool (worker_threads) using balancer with event loop utilization. 🌱
Stars: ✭ 86 (+218.52%)
Mutual labels:  parallel, workers
ParallelUtilities.jl
Fast and easy parallel mapreduce on HPC clusters
Stars: ✭ 28 (+3.7%)
Mutual labels:  parallel, distributed-computing

ZMQ

Brokers for ZeroMQ from TA:map project used for distributed parsing system.

Build Status Dependency Badge Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License

Install(debian)

1. Install ZeroMQ

    sudo apt-get update -qq
    sudo apt-get install -y libzmq3-dev

2. Install php-zmq binding

    git clone https://github.com/mkoppanen/php-zmq.git
    sh -c "cd php-zmq && phpize && ./configure && make --silent && sudo make install"
    echo "extension=zmq.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

3. Require ZMQ via Composer

    composer require limitium/zmq

Tests

    phpunit

Usage

PSR-3 distributed logger

Can be used in single process, several process on single machine or on several machines.

logger

    $logger = new ZLogger('my_service_1', 'tcp://127.0.0.1:5555');
    $logger->info("core is stable");
    $logger->emergency("we're all going to die!");

collector

    (new Concentrator('tcp://127.0.0.1:5555'))
        ->setReceiver(function ($logMsg) {
            $serviceName = $logMsg[0];
            $time = $logMsg[1];
            $logLevel = $logMsg[2];
            $logMsg = $logMsg[3];
        })
        ->listen();

Task generator

With workers management (checks workers statuses, checks workers heartbeats etc)

Generator

    (new Ventilator('tcp://127.0.0.1:5555'))
        ->setGenerator(function () {
            sleep(1);
            return rand();
        })
        ->setResponder(function ($msg) {
            echo $msg;
        })
        ->listen();

Worker

    (new Worker('tcp://127.0.0.1:5555'))
        ->setExecutor(function ($msg) {
            return $msg + $msg;
        })
        ->work();

Publish/Subscribe

Publisher

    $pub = new Publisher('tcp://127.0.0.1:5555');
    $pub->send('azaza');

Subscriber

    (new Subscriber('tcp://127.0.0.1:5555'))
        ->setListener(function ($msg){
            echo $msg;
        })
        ->listen();
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].