bIsTest) { $h = (int) ($this->iTestH ?? $h); $i = (int) ($this->iTestI ?? $i); $s = (int) ($this->iTestS ?? $s); } echo "cron开始执行 \n"; if ($h % 8 === 0 && $i === 3) { CronBook::randbox_notify(); // note提醒 } if ($h % 6 === 0 && $i === 3) { ShadowRocketCrawl::run(); ShadowRocketPublish::run(); // exit; CronFreenodeCrawl::run(); // 1.爬免费节点 CronFreenodePool::save(); // 2.格式化入库 CronFreenodeMerge::save(); // 3.加工成文件 CronFreenodeMerge::baseToSite(); // 4.文件分散为各站用 } if ($h % 3 === 0 && $i === 3) { CronFreenodeSync::nodehub(); // fn分到到nodehub CronFreenodeSync::run(); // fn分发到各到各站,旧版 NasaTestFnSubfile::run_b(); } if ($h == 11 && $i == 3) { CronFnSitePublish::fn_b(); // 新版,直接生成完整fn文章推到各站 } if ($h == 5 && $i === 3) { CronFreenodeFile::clear(); // 清理fn } if ($h == 13 && $i == 3) { // 中午12点03发布fn的tg CronFnTgPublish::run(); // fn发布tg频道 CronFnTgPublish::run_b(); // 新版,fn发布tg频道 } if ($i % 3 === 0) { ServiceCacheTg::cron_saveToSchema(); // 文章从tg接收 CronArticleSchema::cacheTgSave(); // 文章入库 CronArticleSchema::pushToSlave(); // 文章发送到各站 CronHttpQueue::pop(); } } catch (\Throwable $e) { $sMsg = ""; $sMsg .= "--- cron 异常 ---\n"; $sMsg .= "类型: " . get_class($e) . "\n"; $sMsg .= "信息: " . $e->getMessage() . "\n"; $sMsg .= "文件: " . $e->getFile() . " 在第 " . $e->getLine() . " 行\n"; $sMsg .= "代码跟踪:\n" . $e->getTraceAsString() . "\n"; $sMsg .= "-----------------------------\n"; echo $sMsg; $sMsg = ""; $sMsg .= "--- cron 异常 ---\n"; $sMsg .= "类型: " . get_class($e) . "\n"; $sMsg .= "信息: " . $e->getMessage() . "\n"; $sMsg .= "文件: " . $e->getFile() . " 在第 " . $e->getLine() . " 行\n"; TeleSlave::fail()->send($sMsg); } } public function setTestH(int $h): void { $this->enableTestMode(); $this->iTestH = $h; } public function setTestI(int $i): void { $this->enableTestMode(); $this->iTestI = $i; } public function setTestS(int $s): void { $this->enableTestMode(); $this->iTestS = $s; } public function enableTestMode(bool $enable = true): void { $this->bIsTest = $enable; } }