|
|
@@ -1,7 +1,6 @@
|
|
|
<?php
|
|
|
require_once 'api/functions.php';
|
|
|
$Organizr = new Organizr();
|
|
|
-$Organizr->setLoggerChannel('Cron');
|
|
|
if ($Organizr->isLocalOrServer() && $Organizr->hasDB()) {
|
|
|
// Set user as Organizr API
|
|
|
$_GET['apikey'] = $Organizr->config['organizrAPI'];
|
|
|
@@ -9,86 +8,110 @@ if ($Organizr->isLocalOrServer() && $Organizr->hasDB()) {
|
|
|
$scheduler = new GO\Scheduler();
|
|
|
// Clear any pre-existing jobs if any
|
|
|
$scheduler->clearJobs();
|
|
|
- $Organizr->logger->debug('Cron process starting');
|
|
|
+ $Organizr->log('Cron')->debug('Cron process starting');
|
|
|
// Auto-update Cron
|
|
|
if ($Organizr->config['autoUpdateCronEnabled'] && $Organizr->config['autoUpdateCronSchedule']) {
|
|
|
try {
|
|
|
$schedule = new Cron\CronExpression($Organizr->config['autoUpdateCronSchedule']);
|
|
|
- $Organizr->logger->debug('Cron schedule has passed validation', ['schedule' => $Organizr->config['autoUpdateCronSchedule']]);
|
|
|
+ $Organizr->log('Cron')->debug('Cron schedule has passed validation', ['schedule' => $Organizr->config['autoUpdateCronSchedule']]);
|
|
|
$scheduler->call(
|
|
|
function () use ($Organizr) {
|
|
|
- $Organizr->logger->debug('Running cron job', ['function' => 'Auto-update']);
|
|
|
+ $Organizr->log('Cron')->debug('Running cron job', ['function' => 'Auto-update']);
|
|
|
return $Organizr->updateOrganizr();
|
|
|
})
|
|
|
->then(function ($output) use ($Organizr) {
|
|
|
- $Organizr->logger->debug('Completed cron job', [
|
|
|
+ $Organizr->log('Cron')->debug('Completed cron job', [
|
|
|
'output' => $output,
|
|
|
]);
|
|
|
})
|
|
|
->at($Organizr->config['autoUpdateCronSchedule']);
|
|
|
} catch (InvalidArgumentException $e) {
|
|
|
- $Organizr->logger->warning('Cron schedule has failed validation', ['schedule' => $Organizr->config['autoUpdateCronSchedule']]);
|
|
|
- $Organizr->logger->error($e);
|
|
|
+ $Organizr->log('Cron')->warning('Cron schedule has failed validation', ['schedule' => $Organizr->config['autoUpdateCronSchedule']]);
|
|
|
+ $Organizr->log('Cron')->error($e);
|
|
|
} catch (Exception $e) {
|
|
|
- $Organizr->logger->error($e);
|
|
|
+ $Organizr->log('Cron')->error($e);
|
|
|
}
|
|
|
}
|
|
|
// End Auto-update Cron
|
|
|
+ // Auto-backup Cron
|
|
|
+ if ($Organizr->config['autoBackupCronEnabled'] && $Organizr->config['autoBackupCronSchedule']) {
|
|
|
+ try {
|
|
|
+ $schedule = new Cron\CronExpression($Organizr->config['autoBackupCronSchedule']);
|
|
|
+ $Organizr->log('Cron')->debug('Cron schedule has passed validation', ['schedule' => $Organizr->config['autoBackupCronSchedule']]);
|
|
|
+ $scheduler->call(
|
|
|
+ function () use ($Organizr) {
|
|
|
+ $Organizr->log('Cron')->debug('Running cron job', ['function' => 'Auto-backup']);
|
|
|
+ return $Organizr->backupOrganizr();
|
|
|
+ })
|
|
|
+ ->then(function ($output) use ($Organizr) {
|
|
|
+ $Organizr->log('Cron')->debug('Completed cron job', [
|
|
|
+ 'output' => $output,
|
|
|
+ ]);
|
|
|
+ })
|
|
|
+ ->at($Organizr->config['autoBackupCronSchedule']);
|
|
|
+ } catch (InvalidArgumentException $e) {
|
|
|
+ $Organizr->log('Cron')->warning('Cron schedule has failed validation', ['schedule' => $Organizr->config['autoBackupCronSchedule']]);
|
|
|
+ $Organizr->log('Cron')->error($e);
|
|
|
+ } catch (Exception $e) {
|
|
|
+ $Organizr->log('Cron')->error($e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // End Auto-backup Cron
|
|
|
// Add plugin cron
|
|
|
- $Organizr->logger->debug('Checking if any plugins have cron jobs');
|
|
|
+ $Organizr->log('Cron')->debug('Checking if any plugins have cron jobs');
|
|
|
foreach ($GLOBALS['cron'] as $cronJob) {
|
|
|
if (isset($cronJob['enabled']) && isset($cronJob['class']) && isset($cronJob['function']) && isset($cronJob['schedule'])) {
|
|
|
- $Organizr->logger->debug('Starting cron job for function: ' . $cronJob['function'], ['cronJob' => $cronJob]);
|
|
|
+ $Organizr->log('Cron')->debug('Starting cron job for function: ' . $cronJob['function'], ['cronJob' => $cronJob]);
|
|
|
if ($Organizr->config[$cronJob['enabled']]) {
|
|
|
- $Organizr->logger->debug('Checking if cron job class exists', ['cronJob' => $cronJob]);
|
|
|
+ $Organizr->log('Cron')->debug('Checking if cron job class exists', ['cronJob' => $cronJob]);
|
|
|
if (class_exists($cronJob['class'])) {
|
|
|
- $Organizr->logger->debug('Class exists', ['cronJob' => $cronJob]);
|
|
|
- $Organizr->logger->debug('Validating cron job schedule', ['schedule' => $cronJob['schedule']]);
|
|
|
+ $Organizr->log('Cron')->debug('Class exists', ['cronJob' => $cronJob]);
|
|
|
+ $Organizr->log('Cron')->debug('Validating cron job schedule', ['schedule' => $cronJob['schedule']]);
|
|
|
try {
|
|
|
$schedule = new Cron\CronExpression($Organizr->config[$cronJob['schedule']]);
|
|
|
- $Organizr->logger->debug('Cron schedule has passed validation', ['schedule' => $Organizr->config[$cronJob['schedule']]]);
|
|
|
+ $Organizr->log('Cron')->debug('Cron schedule has passed validation', ['schedule' => $Organizr->config[$cronJob['schedule']]]);
|
|
|
$plugin = new $cronJob['class']();
|
|
|
$function = $cronJob['function'];
|
|
|
- $Organizr->logger->debug('Checking if cron job method exists', ['cronJob' => $cronJob]);
|
|
|
+ $Organizr->log('Cron')->debug('Checking if cron job method exists', ['cronJob' => $cronJob]);
|
|
|
if (method_exists($plugin, $function)) {
|
|
|
- $Organizr->logger->debug('Method exists', ['cronJob' => $cronJob]);
|
|
|
+ $Organizr->log('Cron')->debug('Method exists', ['cronJob' => $cronJob]);
|
|
|
$scheduler->call(
|
|
|
function ($plugin, $function) use ($Organizr) {
|
|
|
- $Organizr->logger->debug('Running cron job', ['function' => $function]);
|
|
|
+ $Organizr->log('Cron')->debug('Running cron job', ['function' => $function]);
|
|
|
return $plugin->$function();
|
|
|
}, [$plugin, $function])
|
|
|
->then(function ($output) use ($Organizr) {
|
|
|
- $Organizr->logger->debug('Completed cron job', [
|
|
|
+ $Organizr->log('Cron')->debug('Completed cron job', [
|
|
|
'output' => $output,
|
|
|
]);
|
|
|
})
|
|
|
->at($Organizr->config[$cronJob['schedule']]);
|
|
|
} else {
|
|
|
- $Organizr->logger->warning('Method error', ['cronJob' => $cronJob['class']]);
|
|
|
+ $Organizr->log('Cron')->warning('Method error', ['cronJob' => $cronJob['class']]);
|
|
|
}
|
|
|
} catch (InvalidArgumentException $e) {
|
|
|
- $Organizr->logger->warning('Cron schedule has failed validation', ['schedule' => $Organizr->config[$cronJob['schedule']]]);
|
|
|
- $Organizr->logger->error($e);
|
|
|
+ $Organizr->log('Cron')->warning('Cron schedule has failed validation', ['schedule' => $Organizr->config[$cronJob['schedule']]]);
|
|
|
+ $Organizr->log('Cron')->error($e);
|
|
|
break;
|
|
|
} catch (Exception $e) {
|
|
|
- $Organizr->logger->error($e);
|
|
|
+ $Organizr->log('Cron')->error($e);
|
|
|
break;
|
|
|
}
|
|
|
} else {
|
|
|
- $Organizr->logger->warning('Class error', ['cronJob' => $cronJob['class']]);
|
|
|
+ $Organizr->log('Cron')->warning('Class error', ['cronJob' => $cronJob['class']]);
|
|
|
}
|
|
|
} else {
|
|
|
- $Organizr->logger->debug('Cron job is not enabled', ['cronJob' => $cronJob]);
|
|
|
+ $Organizr->log('Cron')->debug('Cron job is not enabled', ['cronJob' => $cronJob]);
|
|
|
}
|
|
|
} else {
|
|
|
- $Organizr->logger->warning('Cron job was setup incorrectly', ['cronJob' => $cronJob]);
|
|
|
+ $Organizr->log('Cron')->warning('Cron job was setup incorrectly', ['cronJob' => $cronJob]);
|
|
|
}
|
|
|
}
|
|
|
- $Organizr->logger->debug('Finished processing plugin cron jobs');
|
|
|
+ $Organizr->log('Cron')->debug('Finished processing plugin cron jobs');
|
|
|
/*
|
|
|
* Include plugin advanced cron
|
|
|
*/
|
|
|
- $Organizr->logger->debug('Checking if any Plugins have advanced cron jobs');
|
|
|
+ $Organizr->log('Cron')->debug('Checking if any Plugins have advanced cron jobs');
|
|
|
try {
|
|
|
$directoryIterator = new RecursiveDirectoryIterator($Organizr->root . DIRECTORY_SEPARATOR . 'api' . DIRECTORY_SEPARATOR . 'plugins', FilesystemIterator::SKIP_DOTS);
|
|
|
$iteratorIterator = new RecursiveIteratorIterator($directoryIterator);
|
|
|
@@ -98,7 +121,7 @@ if ($Organizr->isLocalOrServer() && $Organizr->hasDB()) {
|
|
|
}
|
|
|
}
|
|
|
} catch (UnexpectedValueException $e) {
|
|
|
- $Organizr->logger->error($e);
|
|
|
+ $Organizr->log('Cron')->error($e);
|
|
|
}
|
|
|
/*
|
|
|
* Include custom plugin advanced cron
|
|
|
@@ -115,23 +138,23 @@ if ($Organizr->isLocalOrServer() && $Organizr->hasDB()) {
|
|
|
}
|
|
|
}
|
|
|
} catch (UnexpectedValueException $e) {
|
|
|
- $Organizr->logger->error($e);
|
|
|
+ $Organizr->log('Cron')->error($e);
|
|
|
}
|
|
|
- $Organizr->logger->debug('Finished processing advanced plugin cron jobs');
|
|
|
+ $Organizr->log('Cron')->debug('Finished processing advanced plugin cron jobs');
|
|
|
// Run cron jobs
|
|
|
$scheduler->run();
|
|
|
// Debug stuff
|
|
|
//$Organizr->prettyPrint($scheduler->getVerboseOutput());
|
|
|
//$Organizr->prettyPrint($scheduler->getFailedJobs());
|
|
|
- $Organizr->logger->debug('Cron process completion', ['verbose' => $scheduler->getVerboseOutput()]);
|
|
|
+ $Organizr->log('Cron')->debug('Cron process completion', ['verbose' => $scheduler->getVerboseOutput()]);
|
|
|
if (!empty($scheduler->getFailedJobs())) {
|
|
|
- $Organizr->logger->warning('Cron jobs have failed', ['jobs' => $scheduler->getFailedJobs(), 'verbose' => $scheduler->getVerboseOutput()]);
|
|
|
+ $Organizr->log('Cron')->warning('Cron jobs have failed', ['jobs' => $scheduler->getFailedJobs(), 'verbose' => $scheduler->getVerboseOutput()]);
|
|
|
}
|
|
|
// End Run and set file with time
|
|
|
$Organizr->createCronFile();
|
|
|
} else {
|
|
|
if ($Organizr->hasDB()) {
|
|
|
- $Organizr->logger->warning('Unauthorized user tried to access cron file');
|
|
|
+ $Organizr->log('Cron')->warning('Unauthorized user tried to access cron file');
|
|
|
die($Organizr->showHTML('Unauthorized', 'Go-on.... Git!!!'));
|
|
|
}
|
|
|
die('Unauthorized');
|