Package Data | |
---|---|
Maintainer Username: | JeroenVanOort |
Maintainer Contact: | remko.brenters@webparking.nl (Remko Brenters) |
Package Create Date: | 2019-03-14 |
Package Last Update: | 2023-07-03 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-22 15:03:18 |
Package Statistics | |
---|---|
Total Downloads: | 15,934 |
Monthly Downloads: | 6 |
Daily Downloads: | 0 |
Total Stars: | 64 |
Total Watchers: | 6 |
Total Forks: | 7 |
Total Open Issues: | 2 |
This package provides a command (queue:ensure-processes
) to allow running the Laravel queue worker (queue:work
) from the Laravel schedule. This enables a cronjob to ensure that configured queue workers are running. It eliminates the need for a process manager like supervisord, which is not available in all production environments (like when working with DirectAdmin or most other server control panels).
Multiple queues can be configured and the number of desired processes can be configured per queue (which makes it possible to run multiple jobs in parallel). Doing so, allows having the queue configuration in your project's codebase.
This package doesn't care about which queue driver(s) you use and queue:restart
still works as normal.
composer require webparking/laravel-queue-ensurer
By default, the queue:ensure-processes
command is configured to run once a minute, ensuring one worker for the default queue. So if that's all you desire, you're good to go.
You can publish the configuration file to your project by running php artisan vendor:publish --provider="Webparking\QueueEnsurer\ServiceProvider" --tag="config"
.
The documentation for the configurable options can be found in the config file.
The queue ensurer works by keeping a cache of process id's (PID's) it has started. Every time the ensurer runs, it does this:
queue:restart
or for any other reason.This means that the ensurer will not take in account any processes it has not started itself.
For the PID cache, the ensurer uses a JSON file (storage/app/queue-listener-pids.json
) instead of the Laravel cache mechanism. If the queue ensurer were to use the Laravel cache and the cache were to be cleared (php artisan cache:clear
), the running processes would not be known to the ensurer any longer. Resulting in it starting new processes, without every killing the old ones.
We're happy to receive pull requests or issues.
When developing, you can run composer test
to execute all code quality checks and tests.
These are features we may add. We don't have a specific need for them now, but we acknowledge their usefulness and we will add them when we have some down time. Should you or your project require one or more of these future features earlier, please submit a PR or create an issue.
This software is open source and licensed under the MIT license.
If you use this software in your daily development we would appreciate to receive a postcard of your hometown.
Please send it to: Webparking BV, Cypresbaan 31a, 2908 LT Capelle aan den IJssel, The Netherlands