Scheduled tasks

Perch includes a centralised system for scheduling tasks. Apps (and dashboard widgets) can make use of this by adding a scheduled_tasks.php file to their app folder.

Scheduling a task

When the task scheduler runs, it looks through each app’s folder for a file called scheduled_tasks.php. An app can register one or more tasks with a call to PerchScheduledTasks::register_task

PerchScheduledTasks::register_task('app_id', 'task_key', $minutes, 'function_to_run');

register_task arguments

Argument Value
app_id The ID of your app.
task_key An identifier for this task. (e.g. update_tweets)
minutes Integer: the frequency, in minutes, of this task.
function A callable function to run, so either a function name as a string, or an array of object, method.

The function is called with one argument – the date and time this task last ran.

Return values

The function you nominate to be called must return an associative array with the results of the task.

Return array

Key Value
result OK, WARNING or FAILED
message A human readable description of the result. This is displayed to the user in the Settings section, to help them fix problems. Max 256 chars.

Example

A basic example of a scheduled_tasks.php file might look like this.

<?php
    PerchScheduledTasks::register_task('my_app', 'download_rss', 60, 'my_app_download_rss');
    function my_app_download_rss($last_run_date)
    {
        if (MyApp::download_rss()) {
            return array(
                'result'=>'OK',
                'message'=>'RSS successfully fetched.'
            );
        }else{
            return array(
                'result'=>'FAILED',
                'message'=>'RSS could not be fetched.'
            );
        }
    }