public static function run($cronid = 0) { global $_G; $cron = $cronid ? C::t('cron')->fetch($cronid) : C::t('cron')->fetch_nextrun(TIMESTAMP); $processname = 'DZZ_CRON_' . (empty($cron) ? 'CHECKER' : $cron['cronid']); if ($cronid && !empty($cron)) { dzz_process::unlock($processname); } if (dzz_process::islocked($processname, 600)) { return false; } if ($cron) { $cron['filename'] = str_replace(array('..', '/', '\\'), '', $cron['filename']); $efile = explode(':', $cron['filename']); if (count($efile) > 1) { $cronfile = DZZ_ROOT . './dzz/' . $efile[0] . '/cron/' . $efile[1]; } else { $cronfile = DZZ_ROOT . './core/cron/' . $cron['filename']; } if ($cronfile) { $cron['minute'] = explode("\t", $cron['minute']); self::setnextime($cron); @set_time_limit(1000); @ignore_user_abort(TRUE); if (!@(include $cronfile)) { return false; } } } self::nextcron(); dzz_process::unlock($processname); return true; }
private static function _cmd($cmd, $name, $ttl = 0) { static $allowmem; if ($allowmem === null) { $mc = memory('check'); $allowmem = $mc == 'memcache' || $mc == 'redis'; } if ($allowmem) { return dzz_process::_process_cmd_memory($cmd, $name, $ttl); } else { return dzz_process::_process_cmd_db($cmd, $name, $ttl); } }