summaryrefslogtreecommitdiffstats
path: root/apis
diff options
context:
space:
mode:
authorSimon Rettberg2017-03-02 16:00:32 +0100
committerSimon Rettberg2017-03-02 16:00:32 +0100
commit627d18ede199339ad3a5bc8b85c0cc71616a6868 (patch)
tree01a848080084495ee914844d78ac9b3959f19642 /apis
parentMerge branch 'statistics_reporting' (diff)
downloadslx-admin-627d18ede199339ad3a5bc8b85c0cc71616a6868.tar.gz
slx-admin-627d18ede199339ad3a5bc8b85c0cc71616a6868.tar.xz
slx-admin-627d18ede199339ad3a5bc8b85c0cc71616a6868.zip
[inc/Hook] New helper for loading hooks
Diffstat (limited to 'apis')
-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);
}