reset
This commit is contained in:
@@ -1,90 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace app\task\module;
|
||||
|
||||
use microserver\ProcessSanitizer;
|
||||
use microserver\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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace app\task\module;
|
||||
|
||||
use app\model\PlanTaskModel;
|
||||
use app\task\crawler\zw630\Scheduler as Zw630Scheduler;
|
||||
use app\task\crawler\zw74\Scheduler as Zw74Scheduler;
|
||||
use app\task\crawler\youzhi\Scheduler as YouZhiScheduler;
|
||||
|
||||
use microserver\QueueManage;
|
||||
use microserver\ProcessSanitizer;
|
||||
|
||||
|
||||
class PlanTask
|
||||
{
|
||||
public static function scanPlanTask($arrData)
|
||||
{
|
||||
ProcessSanitizer::destructConnectSource();
|
||||
|
||||
$PlanTaskAll = PlanTaskModel::where('pt_enable', 1)->select();
|
||||
|
||||
foreach ($PlanTaskAll as $PlanTask) {
|
||||
|
||||
if ($PlanTask->pt_last_exec != 0 && ($PlanTask->pt_last_exec + $PlanTask->pt_limit) > time()) continue;
|
||||
|
||||
$PlanTask->pt_last_exec = time();
|
||||
|
||||
$PlanTask->save();
|
||||
|
||||
switch ($PlanTask->pt_code) {
|
||||
|
||||
case 'PULL_630_ZW_NOVEL':
|
||||
self::pull630ZwNovel();
|
||||
break;
|
||||
case 'PULL_630_ZW_NOVEL_LATEST':
|
||||
self::pull630ZwNovelLatest();
|
||||
break;
|
||||
|
||||
case 'PULL_74_ZW_NOVEL':
|
||||
self::pull74ZwNovel();
|
||||
break;
|
||||
case 'PULL_74_ZW_NOVEL_LATEST':
|
||||
self::pull74ZwNovelLatest();
|
||||
break;
|
||||
|
||||
case 'PULL_YOU_ZHI_SHI_PIN':
|
||||
self::pullYouZhiShiPin();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function pullYouZhiShiPin()
|
||||
{
|
||||
$arrTask = [
|
||||
'callback' => [YouZhiScheduler::class, 'crawlFull'],
|
||||
'data' => []
|
||||
];
|
||||
|
||||
$QueueManage = new QueueManage();
|
||||
$QueueManage->set($arrTask);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function pull630ZwNovel()
|
||||
{
|
||||
$arrTask = [
|
||||
'callback' => [Zw630Scheduler::class, 'crawlFull'],
|
||||
'data' => []
|
||||
];
|
||||
|
||||
$QueueManage = new QueueManage();
|
||||
$QueueManage->set($arrTask);
|
||||
}
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function pull630ZwNovelLatest()
|
||||
{
|
||||
$arrTask = [
|
||||
'callback' => [Zw630Scheduler::class, 'crawLatest'],
|
||||
'data' => []
|
||||
];
|
||||
|
||||
$QueueManage = new QueueManage();
|
||||
$QueueManage->set($arrTask);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function pull74ZwNovel()
|
||||
{
|
||||
$arrTask = [
|
||||
'callback' => [Zw74Scheduler::class, 'crawlFull'],
|
||||
'data' => []
|
||||
];
|
||||
|
||||
$QueueManage = new QueueManage();
|
||||
$QueueManage->set($arrTask);
|
||||
}
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function pull74ZwNovelLatest()
|
||||
{
|
||||
$arrTask = [
|
||||
'callback' => [Zw74Scheduler::class, 'crawLatest'],
|
||||
'data' => []
|
||||
];
|
||||
|
||||
$QueueManage = new QueueManage();
|
||||
$QueueManage->set($arrTask);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user