From c24882beab60469d177ef8623620f0dfb743c21f Mon Sep 17 00:00:00 2001 From: make Date: Thu, 19 Jun 2025 18:45:46 +0800 Subject: [PATCH] debug-novel-task --- code/app/task/crawler/zw/page/Site.php | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/code/app/task/crawler/zw/page/Site.php b/code/app/task/crawler/zw/page/Site.php index 87d6df7..d0ea0a0 100644 --- a/code/app/task/crawler/zw/page/Site.php +++ b/code/app/task/crawler/zw/page/Site.php @@ -200,6 +200,7 @@ class Site */ public function getNovelPageList(array $arrFilter): array { + $QueueManage = QueueManage::getInstance(); /** @var NovelPage[] */ $arrNovelPage = []; @@ -229,10 +230,19 @@ class Site continue; } - // 判断是否包含 $strContent ,不包含跳过 + // 判断是否包含 $strContent ,不包含跳过 Gateway Timeout if (strpos($strContent, '') === false) { // 不包含该字符串,跳过 var_dump(mb_substr($strContent, 0, 300)); + + if (strpos($strContent, '超过并发限制') === true || strpos($strContent, 'Timeout') === true) { + // 重新推送任务 + $arrTask = [ + 'callback' => [Zw74Scheduler::class, 'getNovelInfo'], + 'data' => $arrFilter, + ]; + $QueueManage->set($arrTask); + } continue; } @@ -251,7 +261,6 @@ class Site 'callback' => [Zw74Scheduler::class, 'getNovelInfo'], 'data' => $arrFilter, ]; - $QueueManage = QueueManage::getInstance(); $QueueManage->set($arrTask); $incKey = config('task.app_name').'_errer_getNovelPageInfo:' . date('Y-m-d'); @@ -278,6 +287,8 @@ class Site */ public function getChapterPageList(array $arrData): array { + $QueueManage = QueueManage::getInstance(); + $arrFilter = $arrData['filter']; /** @var ChapterPage[] */ @@ -304,6 +315,16 @@ class Site $strPattern = "/lastread\.set\((.*?)\);/"; if (!preg_match($strPattern, $strContent, $arrMatches)) { var_dump(mb_substr($strContent, 0, 300)); // 防止输出太长 + + if (strpos($strContent, '超过并发限制') === true || strpos($strContent, 'Timeout') === true) { + // 重新推送任务 + $arrTask = [ + 'callback' => [Zw74Scheduler::class, 'getChapterInfo'], + 'data' => $arrData, + ]; + $QueueManage->set($arrTask); + } + continue; } @@ -323,7 +344,6 @@ class Site 'callback' => [Zw74Scheduler::class, 'getChapterInfo'], 'data' => $arrData, ]; - $QueueManage = QueueManage::getInstance(); $QueueManage->set($arrTask); $this->redisDailyInc(config('task.app_name') . '_errer_getChapterPageList:' . date('Y-m-d'));