CMS  Version 3.9
scheduled_task.inc
Go to the documentation of this file.
1 <?php
7 class ScheduledTask extends DataItem
8 {
9  var $table = "scheduled_task";
10  var $primary_key = "task_id";
11 
12  var $fields = array("task_id" => Number,
13  "component" => String,
14  "task_name" => String,
15  "run_every_hour" => Boolean,
16  "schedule" => TaskSchedule,
17  "active" => Boolean);
18 
19  var $relations = array("LogEntries" => ScheduledTaskLogEntry,
20  "LastRun" => ScheduledTaskLogEntry);
21 
22  function LogEntries($constraint = "")
23  {
24  return $this->getRelatedList(ScheduledTaskLogEntry, "", $constraint);
25  }
26 
27  static function getInstance($component, $task_name)
28  {
29  return Query::create(ScheduledTask, "WHERE component=:c AND task_name=:t")
30  ->bind(":c", $component, ":t", $task_name)
31  ->executeSingle();
32  }
33 
34  function LastRun()
35  {
36  if ($this->_lastRun) return $this->_lastRun;
37  $lastRun = $this->LogEntries("ORDER BY log_date DESC limit 1");
38  $this->_lastRun = $lastRun;
39  return $lastRun;
40  }
41 
42  function run()
43  {
44  $mgr = new ScheduledTaskManager();
45  $mgr->executeTask($this->component, $this->task_name);
46  }
47 }
48 
49 
50 class ScheduledTaskLogEntry extends DataItem
51 {
52  var $table = "scheduled_task_log_entry";
53  var $primary_key = "log_entry_id";
54 
55 
56  var $fields = array("log_entry_id" => Number,
57  "task_id" => Number,
58  "log_date" => DateTime,
59  "log" => Text,
60  "status" => String);
61 
62  var $relations = array("Task" => ScheduledTask);
63 
64  function Task()
65  {
66  return $this->getRelated(ScheduledTask);
67  }
68 }
69 ?>
$constraint
$component
Definition: help.inc:38
static getInstance($component, $task_name)
LogEntries($constraint="")
Task()
$table
$primary_key
$fields
$relations
Manages scheduled task registration and execution.