Download the PHP package ostark/craft-async-queue without Composer
On this page you can find all versions of the php package ostark/craft-async-queue. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package craft-async-queue
Async (Background) Queue
With Craft's job queue you can run heavy tasks in the background. Unfortunately, this is not entirely true. When runQueueAutomatically => true
(default), the job queue is handled by a ajax (FPM) call.
With many jobs in the queue and limited PHP-FPM processes this can break your site. This plugin replaces Craft's default queue handler and moves queue execution to a non-blocking background process. The command craft queue/run
gets executed right after you push a job to the queue.
Here you can find the initial discussion I started at craftcms/cms
.
Sponsor 🐇
Development happens in my free time, but also during working hours. Thanks fortrabbit.com!
Licence 🌳
This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank me for my work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.
Requirements
- Craft 3 or 4
- Permissions to execute a php binary
- proc_open()
- PHP >=7.1 (for PHP 7.0 use
ostark/craft-async-queue:1.3.*
)
Installation
If you run into Composer version conflicts:
Configuration (optional)
The plugin uses symfony/process to execute the php
binary. Usually the binary is located in /usr/bin/
, but other common locations are auto detected as well. With the ENV var PHP_BINARY
you can explicitly set the path, e.g. in your .env file like this:
By default 1
background process handles the queue. With the ASYNC_QUEUE_CONCURRENCY
ENV var you can modify this behaviour.
To disable the plugin in certain environments, like on Windows which is not supported yet, set the DISABLE_ASYNC_QUEUE
ENV var.
Note that the plugin will overwrite the runQueueAutomatically
setting with Craft CMS. No configurartion required.
Tests
Beside the test suite you can run from the command line with this shortcut: composer tests
, you can perform a test in the Craft CP.
Navigate to Utilities
> Async Queue Test
and hit the Run test
button.
Events
The command that runs in the background is basically php craft queue/run
, however we add some linux specific syntax that executes the command in a non-blocking way.
By setting useDefaultDecoration
to false
you prevent this. You have also the ability to modify the command itself.
Under the hood: Process list
Empty queue (only php-fpm master is running) `
New job pushed (php-fpm master + child + /usr/bin/php daemon started)