Skip to main content

Async Queues In Laravel

Push a function/closure to the background.

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 barryvdh/laravel-async-queue
Add the Service Provider to the providers array in config/app.php
Barryvdh\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 the binary 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

Comments

Popular posts from this blog

Laravel working with Queues

What are queues in web development? Queues allow you to defer/postpone the processing of a time consuming task, such as sending an e-mail, until a later time, thus drastically speeding up the web requests to your application, which returns a response and serves the client significantly faster than it would be if the task ran synchronously. The Laravel Queue component provides a unified API across a variety of different queue services. There are different queue services. Some of them are hosted elsewhere, but some of them can be self-hosted, such as Beanstalkd, which I'll cover here. How do they work behind the scenes? Once you push a job onto the queue (from somewhere within your code, e.g. send an email after user has registered), all that the client has to wait for is for job to be pushed onto the queue service that is listening for jobs, and doesn't have to wait for the queue service to finish the job itself. The most trivial example would be a McDonalds employee ...

The Coolest New Tech In 2018

The world of tech is always evolving, and each new year comes with all sorts of innovations and breakthroughs from some of the coolest and most prestigious companies in the world. This year is no different, and more information is starting to come out about some of the coolest gadgets releasing in 2018. All of this cool new technology is set to be released to consumers sometime this year, and the general excitement is already making waves online. Out of all of these cool new gadgets, which of these releases is building the most hype? The biggest names in tech are looking to dazzle consumers with the latest revolutionary technologies, but there are also some lesser known companies who are showcasing their newest products in order to make a name for themselves. It's up to the people to decide what new technologies are going to take 2018 by storm and which ones will ultimately be forgotten. This Reverse Microwave Can Quick-Freeze Food And Drinks ...