Skip to content

digbang/safe-queue

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
This branch is 53 commits ahead of maxbrokman:master.

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 

SafeQueue

A Laravel Queue worker that's safe for use with Laravel Doctrine

When to use SafeQueue

  • You use Laravel 6 or up
  • You use Laravel Doctrine
  • Devops say the CPU usage of queue:listen is unacceptable
  • You want to do php artisan queue:work --daemon without hitting cascading EntityManager is closed exceptions

Compatibility

Version Supported Laravel Versions
0.1.* 5.1, 5.2
0.2.* ^5.3.16
0.3.* > 5.4 & <=5.8.*
0.4.* ^6.0 & ^7.0
0.5.* ^8.0

How it Works

SafeQueue overrides a small piece of Laravel functionality to make the queue worker daemon safe for use with Doctrine. It makes sure that the worker exits if the EntityManager is closed after an exception. For good measure it also clears the EM before working each job.

Installation

Install using composer

composer require digbang/safe-queue

Once you've got the codez add the following to your service providers in app.php

Digbang\SafeQueue\DoctrineQueueProvider::class
Lumen

Create the config file config/safequeue.php and load it: $app->configure('safequeue');

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Worker Command Name
    |--------------------------------------------------------------------------
    |
    | Configure the signature / name of the Work Command here. The default
    | is to rename the command to 'doctrine:queue:work', however you can
    | rename it to whatever you want by changing this value.
    |
    | To override the Laravel 'queue:work' command name just set this
    | to a false value or 'queue:work'.
    |
    */
    'command_name' => 'doctrine:queue:work',

];

Usage

php artisan doctrine:queue:work  connection --daemon --sleep=3 --tries=3 ...

All options are identical to Laravel's own queue:work method.

About

Laravel Doctrine friendly queue worker

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%