summaryrefslogtreecommitdiffstats
path: root/apis/cron.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'apis/cron.inc.php')
-rw-r--r--apis/cron.inc.php20
1 files changed, 7 insertions, 13 deletions
diff --git a/apis/cron.inc.php b/apis/cron.inc.php
index 30d6d452..a0042e61 100644
--- a/apis/cron.inc.php
+++ b/apis/cron.inc.php
@@ -32,14 +32,9 @@ function handleModule($file)
include_once $file;
}
-foreach (glob('modules/*/hooks/cron.inc.php', GLOB_NOSORT) as $file) {
- preg_match('#^modules/([^/]+)/#', $file, $out);
- $mod = Module::get($out[1]);
- if ($mod === false)
- continue;
- $id = $mod->getIdentifier();
+foreach (Hook::load('cron') as $hook) {
// Check if job is still running, or should be considered crashed
- $status = getJobStatus($id);
+ $status = getJobStatus($hook->moduleId);
if ($status !== false) {
$runtime = (time() - $status['start']);
if ($runtime < 0) {
@@ -51,13 +46,12 @@ foreach (glob('modules/*/hooks/cron.inc.php', GLOB_NOSORT) as $file) {
} else {
// Consider job crashed
Property::removeFromList(CRON_KEY_STATUS, $status['string']);
- EventLog::failure('Cronjob for module ' . $id . ' seems to be stuck or has crashed. Check the php or web server error log.');
+ EventLog::failure('Cronjob for module ' . $hook->moduleId . ' seems to be stuck or has crashed. Check the php or web server error log.');
continue;
}
}
- $now = time();
- Property::addToList(CRON_KEY_STATUS, "$id|$now", 1800);
- $mod->activate();
- handleModule($file);
- Property::removeFromList(CRON_KEY_STATUS, "$id|$now");
+ $value = $hook . '|' . time();
+ Property::addToList(CRON_KEY_STATUS, $value, 1800);
+ handleModule($hook->file);
+ Property::removeFromList(CRON_KEY_STATUS, $value);
}