function run($pid = 0) { global $_G; $timestamp = TIMESTAMP; save_syscache('pick_run', TIMESTAMP + 300); $cron = DB::fetch_first("SELECT lastrun,nextrun,pid,cron_minute,cron_hour,cron_day,cron_weekday FROM " . DB::table('strayer_picker') . " WHERE is_auto_pick>'0' AND nextrun<='{$timestamp}' ORDER BY nextrun LIMIT 1"); if ($cron['cron_day'] == 0) { $cron['cron_day'] = -1; } $processname = 'PICK_CRON_' . (empty($pid) ? 'CHECKER' : $cron['pid']); if ($pid && !empty($cron)) { discuz_process::unlock($processname); } if (discuz_process::islocked($processname, 600)) { return false; } if ($cron['pid']) { require_once PICK_DIR . '/lib/pick.class.php'; $cron['cron_minute'] = explode(",", $cron['cron_minute']); pick_cron::setnextime($cron); @set_time_limit(1000); @ignore_user_abort(TRUE); $pick = new pick($cron['pid'], 1); $pick->run_start(); } pick_cron::nextcron(); discuz_process::unlock($processname); return true; }
function start_pick() { require_once PICK_DIR . '/lib/pick.class.php'; $pick = new pick(); $pick->run_start(); }