ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilCronCheck.php
Go to the documentation of this file.
1 <?php
2 /*
3  +-----------------------------------------------------------------------------+
4  | ILIAS open source |
5  +-----------------------------------------------------------------------------+
6  | Copyright (c) 1998-2001 ILIAS open source, University of Cologne |
7  | |
8  | This program is free software; you can redistribute it and/or |
9  | modify it under the terms of the GNU General Public License |
10  | as published by the Free Software Foundation; either version 2 |
11  | of the License, or (at your option) any later version. |
12  | |
13  | This program is distributed in the hope that it will be useful, |
14  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16  | GNU General Public License for more details. |
17  | |
18  | You should have received a copy of the GNU General Public License |
19  | along with this program; if not, write to the Free Software |
20  | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21  +-----------------------------------------------------------------------------+
22 */
23 
24 
35 {
36  private $possible_tasks = array();
37  private $default_tasks = array();
38 
39  public function __construct()
40  {
41  global $ilLog;
42 
43  $this->log = $ilLog;
44 
45  $this->initTasks();
46  }
47 
48  public function start()
49  {
50  /* MOVED TO: ilCronManager::runActiveJobs();
51  global $ilSetting;
52 
53  $ilSetting->set('last_cronjob_start_ts', time());
54  */
55 
56  if ($_SERVER['argc'] > 4) {
57  for ($i = 4; $i < $_SERVER['argc']; $i++) {
58  $arg = $_SERVER['argv'][$i];
59 
60  if (!isset($this->possible_tasks[$arg])) {
61  throw new ilException('cron-task "' . $arg . '" is not defined');
62  }
63 
64  $task = $this->possible_tasks[$arg];
65 
66  $this->runTask($task);
67  }
68  } else {
69  foreach ($this->default_tasks as $task) {
70  $task = $this->possible_tasks[$task];
71 
72  $this->runTask($task);
73  }
74  }
75  }
76 
77  private function runTask($task)
78  {
79  global $ilLog;
80 
85  $classlocation = $task['location'] . '/classes';
86  if (isset($task['sub_location']) && strlen($task['sub_location'])) {
87  $classlocation .= '/' . $task['sub_location'];
88  }
89  $classfile .= $classlocation . '/class.' . $task['classname'] . '.php';
90 
91  $classname = $task['classname'];
92  $method = $task['method'];
93 
94  $condition = $task['condition'];
95 
100  if (!file_exists($classfile)) {
101  throw new ilException('class file "' . $classfile . '" does not exist');
102  }
103 
104  require_once($classfile);
105 
106  if (!class_exists($classname)) {
107  throw new ilException('class "' . $classname . '" does not exist');
108  }
109 
110  if (!method_exists($classname, $method)) {
111  throw new ilException('method "' . $classname . '::' . $method . '()" does not exist');
112  }
113 
119  if ($condition) {
120  $ilLog->write("CRON - starting task: " . $classname . "::" . $method);
121 
122  $task = new $classname;
123  $task->$method();
124 
125  $ilLog->write("CRON - finished task: " . $classname . "::" . $method);
126  } else {
127  $ilLog->write("CRON - task condition failed: " . $classname . "::" . $method);
128  }
129  }
130 
131  private function initTasks()
132  {
133  global $ilSetting;
134 
135  $this->default_tasks = array(
136  'ilCronValidator::check'
137  );
138 
139  $this->possible_tasks = array(
140 
141  // Start System Check
142  'ilCronValidator::check' => array(
143  'classname' => 'ilCronValidator',
144  'method' => 'check',
145  'location' => 'cron',
146  'condition' => ($ilSetting->get('systemcheck_cron') == 1)
147  )
148  );
149  }
150 }
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
Create styles array
The data for the language used.
global $ilSetting
Definition: privfeed.php:17
$i
Definition: disco.tpl.php:19