Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/cyrille37/wp-queue-manager/archive/refs/heads/main.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
Managing asynchronous or/and long running jobs in Wordpress.
Features
- can be managed with supervisord or system cron or php.exec()
- manage a queue with job locking to avoid concurent launch of same job
- can request a job progress via a wp_ajax action, nice for long running jobs (big file import)
- don't call WP with http request because it's depends on http request time limit,
- really load WP in job runner
- make it possible to distinguish between tasks requiring WP plugins and those that do not need them (optimization)
- not possible, we need at least database configuration ans loading wp-config will load many stuff like activated plugins.
In a later time, it should be nice to implements the runner for message queue service, but there is already 10up/WP-Minions for RabbitMQ and Gearman with forks for SQS and AWS service.
Inspiration
A big thank you to the designers of the projects wp-background-processing and 10up/WP-Minions where I found much knowledge and inspiration.
I should have:
- fork WP-Minions to add a Redis "minion" but it would not be runnable on mutualized hosting.
- use WP-Background-Pocessing but it is sensible to http request time limit that is not compatible with very long running job.