Beispiel #1
0
 /**
  * Returns an instance of class (singleton pattern implementation).
  *
  * @return BOL_CronService
  */
 public static function getInstance()
 {
     if (self::$classInstance === null) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
Beispiel #2
0
$plugins = BOL_PluginService::getInstance()->findActivePlugins();
foreach ($plugins as $plugin) {
    /* @var $plugin BOL_Plugin */
    $pluginRootDir = OW::getPluginManager()->getPlugin($plugin->getKey())->getRootDir();
    if (file_exists($pluginRootDir . DS . 'cron.php')) {
        include $pluginRootDir . DS . 'cron.php';
        $className = strtoupper($plugin->getKey()) . '_Cron';
        $cron = new $className();
        $runJobs = array();
        $newRunJobDtos = array();
        foreach (BOL_CronService::getInstance()->findJobList() as $runJob) {
            /* @var $runJob BOL_CronJob */
            $runJobs[$runJob->methodName] = $runJob->runStamp;
        }
        $jobs = $cron->getJobList();
        foreach ($jobs as $job => $interval) {
            $methodName = $className . '::' . $job;
            $runStamp = isset($runJobs[$methodName]) ? $runJobs[$methodName] : 0;
            $currentStamp = time();
            if ($currentStamp - $runStamp > $interval * 60) {
                $runJobDto = new BOL_CronJob();
                $runJobDto->methodName = $methodName;
                $runJobDto->runStamp = $currentStamp;
                $newRunJobDtos[] = $runJobDto;
                BOL_CronService::getInstance()->batchSave($newRunJobDtos);
                $newRunJobDtos = array();
                $cron->{$job}();
            }
        }
    }
}