PHP Classes

File: cron.php

Recommend this page to a friend!
  Classes of Brett Dutton   JackBooted PHP Framework   cron.php   Download  
File: cron.php
Role: Example script
Content type: text/plain
Description: Example script
Class: JackBooted PHP Framework
Web application framework using simplified MVC
Author: By
Last change:
Date: 8 years ago
Size: 2,184 bytes
 

Contents

Class file image Download
<?php
use \Jackbooted\Cron\Cron;
use \
Jackbooted\Cron\CronDAO;
use \
Jackbooted\Cron\Scheduler;
// /usr/bin/php /home/brettdut/public_html/voodoo/cron.php >> /home/brettdut/public_html/voodoo/_private/cron.log

require_once dirname ( __FILE__ ) . "/config.php";
set_time_limit ( 0 );
if ( isset (
$_SERVER['HTTP_HOST'] ) ) echo '<pre>';
_runner ();
if ( isset (
$_SERVER['HTTP_HOST'] ) ) echo '</pre>';

function
_runner () {
   
_runnerLog ( 'Running Cron' );
   
$pageTimer = new \Jackbooted\Time\Stopwatch ( 'Run time for ' . basename ( __FILE__ ) );
   
_runnerLog ( 'Checking if scheduled jobs need to be added to CronQueue' );
   
Scheduler::check ();
   
$numberOfItemsProcessed = 0;

    while (
$pageTimer->getTime () < 60 ) {
       
$cronJobList = Cron::getList ( 1 );
        if (
count ( $cronJobList ) <= 0 ) break;

        foreach (
$cronJobList as $cronJob ) {
           
_runnerLog ( 'Found Job: ' . $cronJob->id );
           
flush();

           
_runnerLog ( 'Changing the status to RUNNING for JobID: ' . $cronJob->id );
           
$cronJob->status = CronDAO::STATUS_RUNNING;
           
$cronJob->runTime = time();
           
$cronJob->save ();
           
flush();

           
$cronJob->result = -1;
           
$cronJob->message = '';

           
_runnerLog ( 'Running command: ' . $cronJob->command . ' ID:' . $cronJob->id );
            unset (
$result );
            @eval (
'$result = ' . $cronJob->command );

            if ( isset (
$result ) && is_array ( $result ) ) {
               
$cronJob->result = $result[0];
               
$cronJob->message = $result[1];
            }

           
_runnerLog ( 'Finished Job ID: ' . $cronJob->id .
                        
' Result: ' . $cronJob->result .
                        
' Message: ' . $cronJob->message );
           
$cronJob->status = CronDAO::STATUS_COMPLETE;
           
$cronJob->save ();
           
flush();

           
$numberOfItemsProcessed++;
        }
    }
   
_runnerLog ( 'Processed ' . $numberOfItemsProcessed . ' items.' );
   
_runnerLog ( $pageTimer->logLoadTime() );
}

function
_runnerLog ( $msg ) {
    echo
date ( 'd-m-Y H:i:s' ), ' ', $msg, "\n";
}