This commit is contained in:
Default
2025-03-20 21:10:55 +08:00
parent 62d2e78347
commit b09e4fca11
41 changed files with 1369 additions and 6258 deletions

View File

@@ -0,0 +1,90 @@
<?php
declare(strict_types=1);
namespace app\task\module;
use minserver\ProcessSanitizer;
use minserver\QueueManage;
class Listen
{
/**
* 监听队列1代理
*
* @param \Swoole\Process $Process
* @return void
*/
static public function innerConsume(\Swoole\Process $Process)
{
return self::innerConsumeCore(1);
}
/**
* 监听队列2代理
*
* @param \Swoole\Process $Process
* @return void
*/
static public function innerConsume02(\Swoole\Process $Process)
{
return self::innerConsumeCore(2);
}
/**
* 监听队列
*
* @param \Swoole\Process $Process
* @return void
*/
static private function innerConsumeCore(int $intIndex = 1)
{
ProcessSanitizer::destructConnectSource();
$arrConfig = config('task.queue');
$intLimit = $arrConfig[$intIndex]['exec_num'];
$QueueManage = new QueueManage($intIndex);
return self::excuteTask($QueueManage, $intLimit);
}
/**
* 队列任务消费
*
* @param \Swoole\Process $Process
* @return void
*/
static private function excuteTask(QueueManage $QueueManage, $intLimit)
{
while ($intLimit > 0) {
$intLimit--;
try {
$strData = $QueueManage->get();
if (empty($strData)) {
sleep(1);
continue;
}
$arrData = json_decode($strData, true);
if (!is_array($arrData)) {
echo '监听Redis队列读取到异常无法解析的数据[' . $strData . ']' . PHP_EOL;
continue;
}
$Class = new $arrData['callback'][0];
$Class->{$arrData['callback'][1]}($arrData['data']);
unset($Class);
} catch (\Throwable $t) {
$strData = $strData ?? '';
echo date('Y-m-d H:i:s') . ':出现致命错误需要处理' . PHP_EOL .
' 队列数据:' . $strData . PHP_EOL .
' 文件:' . $t->getFile() . PHP_EOL .
' 行数:' . $t->getLine() . PHP_EOL .
' 错误描述:' . $t->getMessage() . PHP_EOL .
' 堆栈跟踪:' . $t->getTraceAsString() . PHP_EOL;
}
}
}
}

View File

@@ -5,32 +5,18 @@ declare(strict_types=1);
namespace app\task\module;
use app\model\PlanTaskModel;
use app\task\collection\ailisi\XiaoShuoCol;
use app\task\collection\biquxs\BiquxsXiaoShuoCol;
use app\task\collection\ccc5\XiaoShuo5cccCol;
use app\task\collection\novel\Zw630XiaoShuoCol;
use app\task\collection\novelone\NovelJiuYuFanXianCol;
use app\task\collection\novelone\NovelWenXueGuanCol;
use app\task\collection\tianlai\TianLaiXiaoShuoCol;
use app\task\collection\seo\GenerateSiteMapCol;
use app\task\collection\seo\GenerateSiteMapNovel;
use app\task\collection\seo\GenerateSiteMapNovelZw;
use app\task\collection\seo\GenerateSiteMapNovelSk;
use app\task\collection\visitlogs\ContentStatsCol;
use app\task\collection\dadi\DaDiDianyingCol;
use app\task\collection\heimuer\HeiMuErYingShiCol;
use app\task\collection\yzzy\YouZhiYingShiCol;
use app\task\core\TaskCore;
use app\task\logic\SystemLogic;
use app\task\collection\zw630\Zw630Col;
use minserver\QueueManage;
use minserver\ProcessSanitizer;
class PlanTask
{
public static function scanPlanTask($arrData)
{
SystemLogic::destructConnectSource();
ProcessSanitizer::destructConnectSource();
$PlanTaskAll = PlanTaskModel::where('pt_enable', 1)->where('site_id', config('app.default_app_id'))->select();
$PlanTaskAll = PlanTaskModel::where('pt_enable', 1)->select();
foreach ($PlanTaskAll as $PlanTask) {
@@ -41,53 +27,11 @@ class PlanTask
$PlanTask->save();
switch ($PlanTask->pt_code) {
case 'PULL_XIAOSHUO':
self::pullXiaoShuo();
case 'PULL_630_ZW_NOVEL':
self::pull630ZwNovel();
break;
case 'PULL_TIANLAIXIAOSHUO':
self::pullTianLaiXiaoShuo();
break;
case 'PULL_BIQUXSXIAOSHUO':
self::pullBiquxsXiaoShuo();
break;
case 'PULL_5CCCXIAOSHUO':
self::pull5cccXiaoShuo();
break;
case 'PULL_DADI_DIANYHHING':
self::pullDadiYingshi();
break;
case 'PULL_HEI_MUER':
self::pullHeiMuEr();
break;
case 'PULL_YOUZHI':
self::pullYouZhiZiYuan();
break;
case 'PULL_TONJI_HUIZON':
self::AddTongJiHuizon();
break;
case 'GENERATE_SITEMAP':
self::generateSiteMap();
break;
case 'NOVEL_GENERATE_SITEMAP':
self::generateNovelSiteMap();
break;
case 'NOVELZW_GENERATE_SITEMAP':
self::generateSiteMapNovelZw();
break;
case 'NOVEL_SK_GENERATE_SITEMAP':
self::generateSiteMapNovelSk();
break;
case 'PULL_630ZWXIAOSHUO':
self::pull630ZwXiaoShuo();
break;
case 'PULL_GUICHUIDENG_XIAOSHUO':
self::pullGuiChuiDengJiuYuFanXianXiaoShuo();
break;
case 'PULL_WENXUEGUAN_XIAOSHUO':
self::pullWenXueGuangXianXiaoShuo();
break;
default:
break;
}
@@ -99,260 +43,14 @@ class PlanTask
*
* @return void
*/
public static function pullWenXueGuangXianXiaoShuo()
public static function pull630ZwNovel()
{
$arrTask = [
'callback' => [NovelWenXueGuanCol::class, 'pullXiaoShuo'],
'callback' => [Zw630Col::class, 'pull630ZwNovel'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
$QueueManage = new QueueManage();
$QueueManage->set($arrTask);
}
/**
* 拉取鬼吹灯小说-九域凡仙
*
* @return void
*/
public static function pullGuiChuiDengJiuYuFanXianXiaoShuo()
{
$arrTask = [
'callback' => [NovelJiuYuFanXianCol::class, 'pullXiaoShuo'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取小说
*
* @return void
*/
public static function pull630ZwXiaoShuo()
{
$arrTask = [
'callback' => [Zw630XiaoShuoCol::class, 'pullXiaoShuo'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 生成地图-小说
*
* @return void
*/
public static function generateNovelSiteMap()
{
$arrTask = [
'callback' => [GenerateSiteMapNovel::class, 'generate'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 生成地图-小说 novelzw 模板
*
* @return void
*/
public static function generateSiteMapNovelZw()
{
$arrTask = [
'callback' => [GenerateSiteMapNovelZw::class, 'generate'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 生成地图-小说 novelzw 模板
*
* @return void
*/
public static function generateSiteMapNovelSk()
{
$arrTask = [
'callback' => [GenerateSiteMapNovelSk::class, 'generate'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 生成地图-视频
*
* @return void
*/
public static function generateSiteMap()
{
$arrTask = [
'callback' => [GenerateSiteMapCol::class, 'generate'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取优质资源
*
* @return void
*/
public static function AddTongJiHuizon()
{
$arrTask = [
'callback' => [ContentStatsCol::class, 'run'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取优质资源
*
* @return void
*/
public static function AddVisitLogs()
{
$arrTask = [
'callback' => [YouZhiYingShiCol::class, 'add'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取优质资源
*
* @return void
*/
public static function pullYouZhiZiYuan()
{
$arrTask = [
'callback' => [YouZhiYingShiCol::class, 'pullYouZhiYingshi'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取黑木耳
*
* @return void
*/
public static function pullHeiMuEr()
{
$arrTask = [
'callback' => [HeiMuErYingShiCol::class, 'pullDadiYingshi'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取大地影视
*
* @return void
*/
public static function pullDadiYingshi()
{
$arrTask = [
'callback' => [DaDiDianyingCol::class, 'pullDadiYingshi'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取小说
*
* @return void
*/
public static function pull5cccXiaoShuo()
{
$arrTask = [
'callback' => [XiaoShuo5cccCol::class, 'pullXiaoShuo'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取小说
*
* @return void
*/
public static function pullXiaoShuo()
{
$arrTask = [
'callback' => [XiaoShuoCol::class, 'pullXiaoShuo'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取小说
*
* @return void
*/
public static function pullBiquxsXiaoShuo()
{
$arrTask = [
'callback' => [BiquxsXiaoShuoCol::class, 'pullXiaoShuo'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
/**
* 拉取小说
*
* @return void
*/
public static function pullTianLaiXiaoShuo()
{
$arrTask = [
'callback' => [TianLaiXiaoShuoCol::class, 'pullXiaoShuo'],
'data' => []
];
$TaskCore = new TaskCore();
$TaskCore->set($arrTask);
}
}