oefenweb / cakephp-queue
A minimalistic Queue Plugin for CakePHP
Installs: 29 685
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 2
Open Issues: 2
Type:cakephp-plugin
Requires
- php: >=7.1
- cakephp/cakephp: ^3.7
Requires (Dev)
- dereuromark/cakephp-tools: ^1.9
- oefenweb/cakephp-codesniffer: ^3.0.0
- phan/phan: ^1.3
- phpmd/phpmd: ^2.6
- phpstan/phpstan: ^0.10.3
- phpunit/phpunit: ^5.7.14|^6.0
- psy/psysh: @stable
- sebastian/phpcpd: ^3.0
This package is auto-updated.
Last update: 2024-12-17 19:20:21 UTC
README
Requirements
- CakePHP 2.9.0 or greater.
- PHP 7.0.0 or greater.
Installation
Clone/Copy the files in this directory into app/Plugin/Queue
Configuration
Ensure the plugin is loaded in app/Config/bootstrap.php
by calling:
CakePlugin::load('Queue');
Ensure to configure the following lines in app/Config/bootstrap.php
:
Configure::write('Queue.workers', 3);
Configure::write('Queue.sleepTime', 10);
Configure::write('Queue.gcprop', 10);
Configure::write('Queue.defaultWorkerTimeout', 2 * MINUTE);
Configure::write('Queue.defaultWorkerRetries', 4);
Configure::write('Queue.workerMaxRuntime', 0);
Configure::write('Queue.cleanupTimeout', DAY);
Configure::write('Queue.exitWhenNothingToDo', false);
Configure::write('Queue.gcOnExit', true);
Load schema:
Console/cake schema create;
Usage
Console
Run from your APP folder:
# Tries to call the `add()` function on a task.
Console/cake Queue.queue add <taskname>;
# Run a queue worker.
Console/cake Queue.queue runworker;
# Display some general statistics.
Console/cake Queue.queue stats;
# Manually call cleanup function to delete task data of completed tasks.
Console/cake Queue.queue clean;
# Manually call cleanup_failed function to delete task data of failed tasks.
Console/cake Queue.queue clean_failed;
Running only specific tasks per worker
You can filter "running" by type:
Console/cake Queue.queue runworker -t MyType,AnotherType,-ThisOneToo
Console/cake Queue.queue runworker -t "-ThisOneNot"
Use -
prefix to exclude. Note that you might need to use ""
around the value then to avoid it being seen as option key.
That can be helpful when migrating servers and you only want to execute certain ones on the new system or want to test specific servers.