Download the PHP package token27/cakephp-scheduled-plugin without Composer
On this page you can find all versions of the php package token27/cakephp-scheduled-plugin. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download token27/cakephp-scheduled-plugin
More information about token27/cakephp-scheduled-plugin
Files in token27/cakephp-scheduled-plugin
Package cakephp-scheduled-plugin
Short Description Scheduled plugin for CakePHP.
License MIT
Informations about the package cakephp-scheduled-plugin
Cake Scheduled
Cron Scheduled Plugin for CakePHP 4.x
Table of Contents
- Introduction
- Why Use It
- Installation
- Starting The Scheduled
- Defining Schedules
- Scheduling CakePHP Shell
- Scheduling Any Other Commands
- Frequency Options
- Hooks
- Before A Job Runs
- After A Job Is Finished
Introduction
Scheduled allows you to write cron jobs right from PHP files. It works for CakePHP shell as well as any other valid PHP code. Basically it is a replacement of the conventional crontab file.
Why Use It
The conventional way of writing a cron job is to place an entry in the crontab file each time you need to schedule a job. The problem with this approach is that you have to login(SSH) to the server each time.
By using Scheduled, we are able to place the cron jobs in the source control system and deploy them to production just like any other PHP code.
Installation
-
To install the Scheduled plugin, you can use composer. From your application's ROOT directory (where composer.json file is located) run the following:
-
Load the plugin via the following command:
- or you can add the following line to your application's file:
path-to-project/config/bootstrap.php
Starting The Scheduled
We only need to install one ordinary cron job which runs every minute. This cron job will enable Scheduled to schedule all the subsequent jobs:
Defining Schedules
A schedule is basically a PHP file prefix with Scheduled and ending with Task.php, it must return the Scheduled object. All schedules should be place inside a folder called ScheduledTasks. This folder must reside at the root directory where composer.json file is located.
For example:
Scheduling CakePHP Shell
To schedule a CakePHP shell, call Scheduled::shell:
Scheduling Any Other Commands
To schedule any other commands, call Scheduled::run:
Frequency Options
There is plenty of ways to define the frequency of the execution:
Method | Description |
---|---|
->cron() | the classic way of defining a schedule |
->hourly() | beginning of each hour |
->daily() | daily at midnight |
->weekly | sunday of each week |
->monthly() | first day of each month |
->quarterly() | first day of each quarter |
->yearly() | first day of each year |
->everyFiveMinutes() | every five minutes |
->everyMinute() | every minute |
->everyTwelveHours() | every twelve hours |
->everyMonth() | every month |
->everySixMonths() | every six months |
->everyFifteenDays() | every fifteen days |
->on('13:30 2016-03-01') | at a specific date and time |
->at('13:30') | at a specific time |
Under the hood, Scheduled is using the great lavary/crunz library. It has a large number of options for us to configure the frequency of the execution. Check out its official documentation if you are looking for more available frequency.
Before A Job Runs
To do something before a job is executed, we can use the before() hook:
For example:
After A Job Is Finished
To do something after a job is executed, we can use the after() hook:
For example: