Laravel Enqueue message queue extension. Supports AMQP, Amazon SQS, Kafka, Google PubSub, Redis, STOMP, Gearman, Beanstalk and others

Overview

Laravel queue package

Gitter

You can use all transports built on top of queue-interop including all supported by Enqueue. It also supports extended AMQP features such as queue declaration and message delaying.

The package allows you to use queue interop transport the laravel way as well as integrates the enqueue simple client.

Advantages

Resources

Developed by Forma-Pro

Forma-Pro is a full stack development company which interests also spread to open source development. Being a team of strong professionals we have an aim an ability to help community by developing cutting edge solutions in the areas of e-commerce, docker & microservice oriented architecture where we have accumulated a huge many-years experience. Our main specialization is Symfony framework based solution, but we are always looking to the technologies that allow us to do our job the best way. We are committed to creating solutions that revolutionize the way how things are developed in aspects of architecture & scalability.

If you have any questions and inquires about our open source development, this product particularly or any other matter feel free to contact at [email protected]

License

It is released under the MIT License.

Comments
  • Reset SIGALRM when job is processed

    Reset SIGALRM when job is processed

    When the job is fetched from the queue, there is a timeout registered using \Illuminate\Queue\Worker::registerTimeoutHandler in \Enqueue\LaravelQueue\Worker::onMessageReceived. But the timeout is not cleaned up when the job is processed. Using the \Enqueue\Consumption\Context\MessageResult event, we can clean the timeout set by pcntl_alarm in a similar way how it's done in the Laravel's worker.

    opened by fehomeh 2
  • Add persistent functionality

    Add persistent functionality

    RabbitMQ has persistent message functionality that has not been serviced. To use it, just add to your app/Jobs/SomeJob.php field $persistent = true. After that when you restart RabbitMQ message still be in a queue.

    opened by darkin1 2
  • Added package auto discovery support

    Added package auto discovery support

    Hi there!

    I've added support for autodiscovering the package. Read more about it here => https://medium.com/@taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518

    enhancement 
    opened by robinvdvleuten 1
  • Add extensions support

    Add extensions support

    Add extensions support, before there wasn't possibility to add Monitoring extension, therefore I did changes, because we needed it.

    Usage:

    • Create your own provider and extend EnqueueServiceProvider
    • Add new extensions to extensions array
    • Add your custom provider to providers config

    Tested with our project and with monitoring extension everything works well.

    opened by ramasofficial 0
  • Correct queue:monitor queues sizes

    Correct queue:monitor queues sizes

    Implementing this function allows for using new Laravel queue feature: queue:monitor

    Without these changes, all queues are 0 size (from Enqueue\LaravelQueue\Queue)

    We are getting queue size anyway with declareQueue. I am just storing it for size function override.

    opened by lothid 0
  • When using this library and if another queue driver is used, in class…

    When using this library and if another queue driver is used, in class…

    When using this library and if another queue driver is used, in class Worker when calling parent::demon the script must finish and we need to quit child method.

    opened by vitaliy-gituser 0
  • Bump enqueue/* dependency versions to 0.10

    Bump enqueue/* dependency versions to 0.10

    I'm currently unable to install enqueue/laravel-queue alongside enqueue/amqp-ext, as they have different dependency versions (enqueue/laravel-queue depends on enqueue/*:0.9, enqueue/amqp-ext on enqueue/*:0.10).

    This pull request simply bumps the enqueue dependencies to match those of the others.

    opened by garbetjie 0
  • Advanced Laravel Queue Worker

    Advanced Laravel Queue Worker

    Advantages:

    • Supports all Laravel native Worker features - pause, stop, kill, events and so on.
    • Consume messages immediately as they arrive. Consume from multiple queues at once.
    • Run fewer work processes - reduce memory usages.
    • It uses long pulling whenever possible - results in zero CPU usages while idling.
    • You can reuse any queue consumer extensions, for example monitor any transport.
    • AMQP friendly.
    opened by makasim 0
  • declareQueue using wrong queue object

    declareQueue using wrong queue object

    Issue

    When starting laravel worker using laravel-queue, this error is produced:

    [2019-01-24 00:48:33] laravel.ERROR: Argument 1 passed to Enqueue\AmqpLib\AmqpContext::declareQueue() must implement interface Interop\Amqp\AmqpQueue, string given, called in /var/www/html/vendor/enqueue/laravel-queue/src/AmqpQueue.php on line 61 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Argument 1 passed to Enqueue\\AmqpLib\\AmqpContext::declareQueue() must implement interface Interop\\Amqp\\AmqpQueue, string given, called in /var/www/html/vendor/enqueue/laravel-queue/src/AmqpQueue.php on line 61 at /var/www/html/vendor/enqueue/amqp-lib/AmqpContext.php:163)
    [stacktrace]
    #0 /var/www/html/vendor/enqueue/laravel-queue/src/AmqpQueue.php(61): Enqueue\\AmqpLib\\AmqpContext->declareQueue('wat')
    #1 /var/www/html/vendor/enqueue/laravel-queue/src/AmqpQueue.php(47): Enqueue\\LaravelQueue\\AmqpQueue->declareQueue('wat')
    #2 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(247): Enqueue\\LaravelQueue\\AmqpQueue->pop('wat')
    

    AmqpContext->declareQueue is expecting the Interop\Amqp\AmqpQueue retrieved on line 57; however, the queue name as a string is passed instead.

    Fix

    Pass $interopQueue to AmqpContext->declareQueue.

    bug 
    opened by matchbookmac 0
  • Fix worker compatibility with Laravel v9.42

    Fix worker compatibility with Laravel v9.42

    After recent Laravel update to version v9.42.0 - laravel/framework#45120 - worker stopped working due to worker's stop function being incompatible with parent.

    opened by lothid 1
  • Kafka Queue Handler

    Kafka Queue Handler

    Notes

    Hello everyone, this PR isn't meant to be PR'ed right away (cfr. composer changes isn't something I want to merge back into the stack), it's a PoC for the use case where I want to listen to a Kafka topic that isn't a serialised PHP class. When configuring Kafka, the laravel container tries to create a job out of the job payload, but for topics that are just transferring data, this of course goes wrong.

    My idea was to have a configuration for a "handler" class to handle this use case. I noticed in the Symfony documentation example there was a spot for a "client", but I don't see anything else wrt to how this interacts exactly with the framework. Assuming this "client" configuration entry serves the same purpose as this "handler" configuration, I'd be interested to see how I could configure it inside the queue.php config file.

    opened by coreation 0
Releases(0.10.17)
Owner
Enqueue
Message Queue, Broadcasting, WebSockets interop packages for PHP, Symfony, Laravel, Magento
Enqueue
STOMP bindings for ReactPHP.

React/STOMP STOMP bindings for React. STOMP is a messaging protocol. It is supported by most message queue brokers, such as RabbitMQ, Apollo and many

Friends of ReactPHP 115 Sep 9, 2022
[READ-ONLY] The Pheanstalk Enqueue transport.

Supporting Enqueue Enqueue is an MIT-licensed open source project with its ongoing development made possible entirely by the support of community and

Enqueue 7 Jun 24, 2021
Redis repository implementation for Laravel Queue Batch

Laravel RedisBatchRepository Replaces default Illuminate\Bus\DatabaseBatchRepository with implementation based on Redis. Requirements: php 8 laravel 8

Roman Nix 5 Nov 15, 2022
RabbitMQ driver for Laravel Queue. Supports Laravel Horizon.

RabbitMQ Queue driver for Laravel Support Policy Only the latest version will get new features. Bug fixes will be provided using the following scheme:

Vladimir Yuldashev 1.6k Dec 31, 2022
anik/amqp wrapper for Laravel-ish frameworks

anik/laravel-amqp anik/amqp wrapper for Laravel-ish frameworks. Laravel Lumen Laravel Zero Examples Checkout the repository for example. Documentation

Syed Sirajul Islam Anik 22 Sep 7, 2022
Performant pure-PHP AMQP (RabbitMQ) sync/async (ReactPHP) library

BunnyPHP Performant pure-PHP AMQP (RabbitMQ) sync/async (ReactPHP) library Requirements BunnyPHP requires PHP 7.1 and newer. Installation Add as Compo

Jakub Kulhan 641 Dec 29, 2022
PHP-Queue: A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners.

A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners. Why PHP-Queue? Implementing a

CoderKungfu 646 Dec 30, 2022
Laravel Custom Queue System

Laravel Queue 1.1.0 Laravel custom queue system. Installation Use composer: composer require m-alsafadi/laravel-queue Add to .env file: LARAVEL_QUEUE_

Mohammad Al-Safadi 1 Aug 2, 2022
PHP client for beanstalkd queue

Pheanstalk Next (5) The master branch will be a WIP branch for v5 of this library until it is released. If any patches are needed in v4 they should be

null 1.9k Dec 21, 2022
PHP bindings for Tarantool Queue.

Tarantool Queue Tarantool is a NoSQL database running in a Lua application server. It integrates Lua modules, called LuaRocks. This package provides P

Tarantool PHP 62 Sep 28, 2022
PHP client for beanstalkd queue

Pheanstalk Pheanstalk is a pure PHP 7.1+ client for the beanstalkd workqueue. It has been actively developed, and used in production by many, since la

null 1.9k Dec 21, 2022
RabbitMQ driver for ThinkPHP6 Queue.

RabbitMQ driver for ThinkPHP6 Queue.

null 2 Sep 14, 2022
Karaoke queue website for BEPIC-Fest

BEPIC-Karaoke This is a small project of a karaoke list for the annual BEPIC-Fest at Ulm University. You can add songs, remove them and change the ord

Tim Palm 2 Jun 8, 2022
A lib to consume message from any Broker

Swarrot Swarrot is a PHP library to consume messages from any broker. Installation The recommended way to install Swarrot is through Composer. Require

null 360 Jan 3, 2023
PHP Kafka client is used in PHP-FPM and Swoole. PHP Kafka client supports 50 APIs, which might be one that supports the most message types ever.

longlang/phpkafka Introduction English | 简体中文 PHP Kafka client is used in PHP-FPM and Swoole. The communication protocol is based on the JSON file in

Swoole Project 235 Dec 31, 2022
The Kafka Enqueue transport - This is an implementation of Queue Interop specification

Supporting Enqueue Enqueue is an MIT-licensed open source project with its ongoing development made possible entirely by the support of community and

Enqueue 40 Oct 6, 2022
Magento 2 Message Queue OS AMQP Broker Implementation

Magento 2 Message Queue AMQP Backend AMQP message queue backend implementation for Rcason_Mq. Installation Require the module via Composer $ composer

Renato 8 Jul 12, 2022
Message Queue, Job Queue, Broadcasting, WebSockets packages for PHP, Symfony, Laravel, Magento. DEVELOPMENT REPOSITORY - provided by Forma-Pro

Supporting Enqueue Enqueue is an MIT-licensed open source project with its ongoing development made possible entirely by the support of community and

Enqueue 2.1k Dec 22, 2022
Beanstalk is a simple, fast work queue.

beanstalkd Simple and fast general purpose work queue. https://beanstalkd.github.io/ See doc/protocol.txt for details of the network protocol. Please

Beanstalkd 6.3k Jan 6, 2023