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;