dereuromark/cakephp-queue-scheduler

QueueScheduler plugin for CakePHP

0.2.6 2024-10-26 12:10 UTC

This package is auto-updated.

Last update: 2024-10-26 12:22:18 UTC


README

CI Coverage Status Latest Stable Version Minimum PHP Version PHPStan License Total Downloads Coding Standards

A scheduler addon for Queue plugin.

This branch is for use with CakePHP 5.0+. For details see version map.

Motivation

A DB and queue based cronjob system does not require a sys-admin to manually modify the crontab file on a server. It also allows for easier multi-server (worker) environments.

Such a system provides easier input and "frequency" validation, as well as visual output of the schedule in the backend. For smaller projects it can also be ported more easily between systems (e.g. dev/stage/prod) using migrations instead of having to touch the server config.

Also logging and i18n customization can potentially be easier to get addressed this way.

Finally, with the Queue plugin integrating it can smoothly work alongside your existing Queue tasks. Any failed job (e.g. network issue, or email SMTP issue) can be automatically re-run x times as per config.

Further features:

  • Concurrency handling: Decision in case a job is still running or failed in queue, if it will run now ones or just skip.
  • The backend can provide buttons to also "trigger" any scheduled job manually where needed.
  • Autocomplete or proposals based on available Cake commands or Queue tasks.

screenshot

Installation

You can install this plugin into your CakePHP application using composer.

composer require dereuromark/cakephp-queue-scheduler

Installation and Usage

See Documentation.

Credit where credit is due

This plugin is heavily inspired by LordSimal Scheduler plugin and Laravel Task Scheduling Feature.

Use this Scheduler plugin if you prefer configuring them file-based and purely in crontab style.