Jobs
All jobs should be saved in:
/app/job/01.xyz.php
Where the (optional) number at the beginning allows the order of the jobs to be defined.
The script itself should really contain a class, such as:
class xyz_job extends job { public function should_run() { return ($this->last_run === NULL || $this->last_run < timestamp('00:00:00', 'db')); // Once a day } public function email_addresses_get() { return array( 'stage' => array( 'admin@example.com', ), 'demo' => array( 'admin@example.com', ), 'live' => array( 'admin@example.com', ), ); } public function run() { } }
Normally all of the 'jobs' can be run via the cli:
./cli --maintenance
Or via the framework provided gateway (if enabled):
https://www.example.com/a/api/maintenance/
It is possible to run the maintenance scripts via your own code (not really needed):
$maintenance = new maintenance(); $maintenance->run();
But to run a single job manually (skipping the 'should_run' check), use:
$maintenance = new maintenance(); echo $maintenance->execute('xyz');
Notice that it will also return echo'ed output, this is because a job should not really print anything (e.g. a cron job)... so it returns it as a variable for you to use.
$config['gateway.maintenance'] = true;