next()){ //check module if(!self::check($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS])){ self::status($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS], \SYSTEM\CRON\cronstatus::CRON_STATUS_FAIL_CLASS); continue;} //time to execute? if(!\SYSTEM\CRON\crontime::check_now( strtotime($cron[\SYSTEM\SQL\system_cron::FIELD_LAST_RUN]), $cron[\SYSTEM\SQL\system_cron::FIELD_MIN], $cron[\SYSTEM\SQL\system_cron::FIELD_HOUR], $cron[\SYSTEM\SQL\system_cron::FIELD_DAY], $cron[\SYSTEM\SQL\system_cron::FIELD_DAY_WEEK], $cron[\SYSTEM\SQL\system_cron::FIELD_MONTH])){ continue;} //Status is ok? if($cron[\SYSTEM\SQL\system_cron::FIELD_STATUS] != \SYSTEM\CRON\cronstatus::CRON_STATUS_SUCCESFULLY){ new \SYSTEM\LOG\CRON('Cron for Class '.$cron[\SYSTEM\SQL\system_cron::FIELD_CLASS].' could not execute cuz Status aint good: '. \SYSTEM\CRON\cronstatus::text($cron[\SYSTEM\SQL\system_cron::FIELD_STATUS])); continue;} //set running self::status($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS], \SYSTEM\CRON\cronstatus::CRON_STATUS_RUNNING); self::status($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS], call_user_func(array($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS],'run'))); } return \SYSTEM\LOG\JsonResult::ok(); } public static function run_class($class){ $cron = \SYSTEM\SQL\SYS_SAIMOD_CRON_SINGLE_SELECT::Q1(array($class)); if(!$cron){ return \SYSTEM\LOG\JsonResult::fail();} //check module if(!self::check($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS])){ self::status($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS], \SYSTEM\CRON\cronstatus::CRON_STATUS_FAIL_CLASS); return \SYSTEM\LOG\JsonResult::fail();} //time to execute? if(!\SYSTEM\CRON\crontime::check_now( strtotime($cron[\SYSTEM\SQL\system_cron::FIELD_LAST_RUN]), $cron[\SYSTEM\SQL\system_cron::FIELD_MIN], $cron[\SYSTEM\SQL\system_cron::FIELD_HOUR], $cron[\SYSTEM\SQL\system_cron::FIELD_DAY], $cron[\SYSTEM\SQL\system_cron::FIELD_DAY_WEEK], $cron[\SYSTEM\SQL\system_cron::FIELD_MONTH])){ return \SYSTEM\LOG\JsonResult::fail();} //Status is ok? if($cron[\SYSTEM\SQL\system_cron::FIELD_STATUS] != \SYSTEM\CRON\cronstatus::CRON_STATUS_SUCCESFULLY){ new \SYSTEM\LOG\CRON('Cron for Class '.$cron[\SYSTEM\SQL\system_cron::FIELD_CLASS].' could not execute cuz Status aint good: '. \SYSTEM\CRON\cronstatus::text($cron[\SYSTEM\SQL\system_cron::FIELD_STATUS])); return \SYSTEM\LOG\JsonResult::fail();} //set running self::status($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS], \SYSTEM\CRON\cronstatus::CRON_STATUS_RUNNING); self::status($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS], call_user_func(array($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS],'run'))); return \SYSTEM\LOG\JsonResult::ok(); } /** * Determine next run of a given Cronjob * * @param class $class Cronjob class * @return time Returns the requested time */ public static function next($class){ $cron = \SYSTEM\SQL\SYS_CRON_GET::Q1(array($class)); //check module if(!self::check($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS])){ throw new \SYSTEM\LOG\ERROR("Given class is not a cronjob");} //time return \SYSTEM\CRON\crontime::next( strtotime($cron[\SYSTEM\SQL\system_cron::FIELD_LAST_RUN]), $cron[\SYSTEM\SQL\system_cron::FIELD_MIN], $cron[\SYSTEM\SQL\system_cron::FIELD_HOUR], $cron[\SYSTEM\SQL\system_cron::FIELD_DAY], $cron[\SYSTEM\SQL\system_cron::FIELD_DAY_WEEK], $cron[\SYSTEM\SQL\system_cron::FIELD_MONTH]); } /** * Determine last run of a given Cronjob * * @param class $class Cronjob class * @return time Returns the requested time */ public static function last($class){ $cron = \SYSTEM\SQL\SYS_CRON_GET::Q1(array($class)); //check module if(!self::check($cron[\SYSTEM\SQL\system_cron::FIELD_CLASS])){ throw new \SYSTEM\LOG\ERROR("Given class is not a cronjob");} //time return \SYSTEM\CRON\crontime::last( strtotime($cron[\SYSTEM\SQL\system_cron::FIELD_LAST_RUN]), $cron[\SYSTEM\SQL\system_cron::FIELD_MIN], $cron[\SYSTEM\SQL\system_cron::FIELD_HOUR], $cron[\SYSTEM\SQL\system_cron::FIELD_DAY], $cron[\SYSTEM\SQL\system_cron::FIELD_DAY_WEEK], $cron[\SYSTEM\SQL\system_cron::FIELD_MONTH]); } /** * Updates the Status of a Cronjob * * @param class $class Cronjob class * @param int $status Status to be written * @return bool Returns true or false */ private static function status($class, $status){ return \SYSTEM\SQL\SYS_CRON_UPD::QI(array($status,time(),$class));} /** * Determines the time when the System-Cronjobs were executed the last time. * * @return time Returns the time last visited */ public static function last_visit(){ return \SYSTEM\SQL\SYS_CRON_LAST_VISIT::Q1()['last_run'];} }