ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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 ilCronCheck()
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 {
58 for($i = 4; $i < $_SERVER['argc']; $i++)
59 {
60 $arg = $_SERVER['argv'][$i];
61
62 if( !isset($this->possible_tasks[$arg]) )
63 throw new ilException('cron-task "'.$arg.'" is not defined');
64
65 $task = $this->possible_tasks[$arg];
66
67 $this->runTask($task);
68 }
69 }
70 else foreach($this->default_tasks as $task)
71 {
72 $task = $this->possible_tasks[$task];
73
74 $this->runTask($task);
75 }
76 }
77
78 private function runTask($task)
79 {
80 global $ilLog;
81
86 $classlocation = $task['location'].'/classes';
87 if( isset($task['sub_location']) && strlen($task['sub_location']) )
88 {
89 $classlocation .= '/'.$task['sub_location'];
90 }
91 $classfile .= $classlocation.'/class.'.$task['classname'].'.php';
92
93 $classname = $task['classname'];
94 $method = $task['method'];
95
96 $condition = $task['condition'];
97
102 if( !file_exists($classfile) )
103 throw new ilException('class file "'.$classfile.'" does not exist');
104
105 require_once($classfile);
106
107 if( !class_exists($classname) )
108 throw new ilException('class "'.$classname.'" does not exist');
109
110 if( !method_exists($classname, $method) )
111 throw new ilException('method "'.$classname.'::'.$method.'()" does not exist');
112
118 if($condition)
119 {
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 }
127 else
128 {
129 $ilLog->write("CRON - task condition failed: ".$classname."::".$method);
130 }
131 }
132
133 private function initTasks()
134 {
135 global $ilias;
136
137 require_once('Services/Payment/classes/class.ilUserDefinedInvoiceNumber.php');
138
139 $this->default_tasks = array(
140 'ilCronValidator::check'
141 );
142
143 $this->possible_tasks = array(
144
145 // Start System Check
146 'ilCronValidator::check' => array(
147 'classname' => 'ilCronValidator',
148 'method' => 'check',
149 'location' => 'cron',
150 'condition' => ($ilias->getSetting('systemcheck_cron') == 1)
151 )
152 );
153 }
154}
155?>
Base class for ILIAS Exception handling.
$task
GENERAL INFORMATION:
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']