genesisweb / laravel-async-queue
Async Queue Driver for Laravel (Push to background) (Forked from barryvdh)
Requires
- php: >=7
- illuminate/console: 5.5.x|5.6.x|5.7.x|5.8.x|6.0.x
- illuminate/support: 5.5.x|5.6.x|5.7.x|5.8.x|6.0.x
- symfony/process: ^3.2|^4
README
Push a function/closure to the background.
#####Forked for Laravel 6 support, all credits to Barryvdh.
For Laravel 5.4, check the 0.6 branch
For Laravel 5.3, check the 0.5 branch
Just like the 'sync' driver, this is not a real queue driver. It is always fired immediatly. The only difference is that the closure is sent to the background without waiting for the response. This package is more usable as an alternative for running incidental tasks in the background, without setting up a 'real' queue driver.
Note: This is using the DatabaseQueue, so make sure you set that up first, including migrations.
Install
Require the latest version of this package with Composer
composer require genesisweb/laravel-async-queue
Add the Service Provider to the providers array in config/app.php
GenesisWeb\Queue\AsyncServiceProvider::class,
You need to create the migration table for queues and run it.
$ php artisan queue:table
$ php artisan migrate
You should now be able to use the async driver in config/queue.php. Use the same config as for the database, but use async as driver.
'connections' => array(
...
'async' => array(
'driver' => 'async',
'table' => 'jobs',
'queue' => 'default',
'expire' => 60,
),
...
}
Set the default to async
, either by changing to config or setting QUEUE_DRIVER
in your .env
file to async
.
Note: By default,
php
is used as the binary path to PHP. You can change this by adding thebinary
option to the queue config. You can also add extra arguments (for HHVM for example)
'connections' => array(
...
'async' => array(
'driver' => 'async',
'table' => 'jobs',
'queue' => 'default',
'expire' => 60,
'binary' => 'php',
'binary_args' => '',
),
...
}
It should work the same as the sync driver, so no need to run a queue listener. Downside is that you cannot actually queue or plan things. Queue::later() is also fired directly. For more info see http://laravel.com/docs/queues