最新消息:觉得本站不错的话 记得收藏哦 博客内某些功能仅供测试 讨论群:135931704 快养不起小站了 各位有闲钱就打赏下把 My Email weicots#gmail.com Please replace # with @

PHP 多进程任务自动分配 采集 函数 使用备忘 6 进程 5个小时 处理 21 万有效产品 数据测试

LINX ajiang-tuzi 5719浏览

客户端

php shell

示例

clipboard
客户端使用的 是php 写的交互式客户端 可以看到任务分配的非常平均 6 进程 每个进程分配3.4748 万个任务 平均9/S 9个任务每秒
任务是远程下载国外亚马逊的图片

使用方法 以及函数说明

<?php
/**
 * WeiCot Sp  Framework
 * User: ajiang
 * Date: 2017/6/17 0016
 * Time: 16:37
 */
include_once "Bootstrap.php";
include_once "TaskConfig.php";
use  Weicot\Mysql;
use  Weicot\Spider\Collection;
use  Weicot\Spider\TaskTable;

$Collection = new Collection;
$db = new Mysql;
$taskTable = new TaskTable;


$taskTable->prinInfo = true;                          //打印信息
$taskTable->longLogShow = false;                        //输出长日志
$taskTable->debugScript = true;                         //输出执行脚本
$taskTable->filterTaskTableStatus = $runStatus;        //筛选任务状态
$taskTable->oriTable = $oriTable;                       //源表
$taskTable->ini($runIni);                             //导入配置文件
$taskTable->setServiceGrop($totalServiceAutomatic);   //设置服务器组


//本表的操作  自动分配  自动运行   自动采集

/*
$taskTable->setSwitchModeStatus("importData","Y");    //导入数据 
$taskTable->setSwitchModeStatus("spiderBeg","Y");     //开始爬取 
$taskTable->setSwitchModeStatus("syncOri","N");       //同步源表
$taskTable->automaticallyAssignRunTasks($runAutomaticallyAssignRunTasksWhere); //自动添加 分配任务 并运行脚本
*/


//采集自动采集  剩下的数据   
//$taskTable->addIndex();                                //给task_table  figId 添加索引
$taskTable->setSwitchModeStatus("importData", "N");    //导入数据 
$taskTable->setSwitchModeStatus("spiderBeg", "Y");     //开始爬取 
$taskTable->setSwitchModeStatus("syncOri", "N");       //同步源表                                    
$taskTable->runLocalTask();                           //运行本地 剩下的任务  


$taskTable->getStatisticalInfo();                     //获得统计信息


//一些其它的常用函数                                        
/*
$taskTable->assignAddTask($count,$totalServiceAutomatic);  //根据数量分配任务
$taskTable->addIndex("ASIN","product_amz");                //给指定表  指定字段添加索引
$taskTable->addIndex()                                     //给task_table  figId 添加索引
$taskTable->dropTable();                                   //清除表
$taskTable->createTable();                                 //创建表
$taskTable->runScript();                                   //运行多任务脚本
$taskTable->assignTask($totalServiceAutomatic);            //分配服务器
$taskTable->removeDuplicates();                            //清除表中重复数据
$taskTable->getStatisticalInfo();                          //获得统计信息
$taskTable->resetValue($key, $resetValue, $where);         //重置表中 Key
*/



//TaskTable Class

//TaskTable   变量
$taskTable->db = "";              //数据库
$taskTable->service = "";         //服务ID
$taskTable->grop = "";            //任务组
$taskTable->prinInfo = true;      //打印信息
$taskTable->savePath;             //保存的路径
$taskTable->longLogShow = true;   //控制长日志是否显示
$taskTable->runScriptGrop;        //运行一组脚本 这里是指脚本内容
$taskTable->totalServiceAutomatic;  //需要分配的服务器 自动分配
$taskTable->basePath;                //基本路径
$taskTable->filterTaskTableStatus;   //筛选 指定状态的任务
$taskTable->oriTable;                //源表
$taskTable->register;                //内存寄存器
$taskTable->registerService = "127.0.0.1";   //寄存器地址
$taskTable->registerPort = "6379";           //寄存器端口
$taskTable->enabledRegister = true;          //启用寄存器
$taskTable->debugScript = false;             //dedBug 脚本
	
	
//TaskTable 函数列表	
$taskTable->ini($ini);                       // 初始化配置
$taskTable->createTable();                   // 创建任务表
$taskTable->dropTable();                     //删除任务表 
$taskTable->addTask($figId, $url, $description = "");                      //添加任务
$taskTable->delTask($id, $figId = false);                                  // 删除任务  可以使用 fig id 或 id
$taskTable->removeDuplicates($deleteOnlyDuplicateInGroup = false);         //去除重复 大于等于2 只留一条数据  $deleteOnlyDuplicateInGroup 仅删除组中的重复
$taskTable->removeOriTableDuplicates($table, $key);                        //清除 源表的重复数据
$taskTable->getTaskList($limit = "0,2000", $status = "P", $grop = false);  //获得任务列表  status  null 未采集   F 采集失败   Y 采集陈功 P 采集中
$taskTable->getTaskWithSql($sql);                                          //通过自定义SQL 获得任务列表
$taskTable->toArray();                                     //任务列表 输出为数组
$taskTable->toText($filePath = false);                     //任务输出到文本
$taskTable->getTaskInfo($id, $key, $fagid = false);        //获得任务信息
$taskTable->upInfo($key, $value, $id, $fagid = false);     //更新信息
$taskTable->translationStatus($status);                    //翻译状态
$taskTable->upTaskStatus($figId, $status = "P");           // 更新任务状态
$taskTable->syncOriTable($table, $set, $where, $figId = false);      //同步数据源表
$taskTable->upSyncTime($figId);                                      //同步任务表中 远程同步时间
$taskTable->addIndex($keyName = "figId", $tableName = "task_list");  //添加索引
$taskTable->getStatusTotal($status, $serviceId = "*");               //获得各种状态的合计数量
$taskTable->syncTotal($service = "*");                               // 已经  同步过去的数量
$taskTable->printTaskInfo($info);              //输出错误信息 服务器端
$taskTable->clientPrint($info);                //客户端打印  输出
$taskTable->echoStatus($status, $serviceId);   //输出状态
$taskTable->getOriTableTotal();                //获得源表数量
$taskTable->getStatisticalInfo();              //获得统计信息
$taskTable->statisticalSqlData($select);       //获得统计 SQl 的记录
$taskTable->assignTask($service, $rule = false, $automatic = true);   //自动分配任务
$taskTable->assignAddTask($count, $service = array());                // 根据任务数量进行分配任务 count  $Service=array(1,2,3)   添加任务分配
$taskTable->runScriptFile($file = "MainSpScript.php");                //运行多任务脚本
$taskTable->setRunScripGrop($scriptGrop);                             //设置要运行的多任务脚本
$taskTable->runScript();                                              //运行自动化的多任务脚本
$taskTable->setServiceGrop($serviceGrop);                             //设置服务器组
$taskTable->runMainScript();                                          //运行主脚本
$taskTable->automaticallyAssignRunTasks($where);                      //自动分配 并运行任务  where 条件
$taskTable->runLocalTask($limit = "0,10000");                         //运行本地任务    
$taskTable->resetValue($key, $resetValue, $where);                    //重置 源表的某个 key
$taskTable->getRegisterValue($key);                                   //获得寄存器的值 支持分组
$taskTable->setRegister($key, $value);                                // 设置寄存器的值 支持分组
$taskTable->getSwitchStatus($Switch);                                 //获得开关 importData   导入数据    spiderBeg 开始爬取  syncOri 同步 Y 打开  N 关闭
$taskTable->setSwitchModeStatus($switch, $status = "Y");              //设置选择
.............................   剩下的一些任务规划 动态表  的函数就不贴了 内部公告有

帮助信息 本来输出是有带颜色的 奈何 这WIN CDM 不支持

C:\Users\Administrator>php G:\SP2\TableTaskClient.php

Weicot Spider v0.12 Task Table Command Line
      ◥◣    ◢◤     ◥◣
◤        ◥◣  ◢◤       █...
▎   ◢█◣   ◥◣◢◤   ◢█   █
◣  ◢◤  ◥◣       ◢◣◥◣ ◢◤.
◥██◤  ◢◤         ◥◣
      █ ●       ● █
      █ 〃   ▄   〃 █
      ◥◣   ╚╩╝   ◢◤
       ◥█▅▃▃ ▃▃▅█◤
         ◢◤   ◥◣ 
         █     █ 
        ◢◤▕   ▎◥◣
       ▕▃◣◢▅▅▅◣◢▃  WeiCot Tools Command

WebSite wwww.weicot.com  ajing 1050653098@qq.com
Help Command  help
[11:02:03|Task Table#]help
<========WeiCot  Cli  V0.23========>
Command             Description
help                获得帮助
statistical         获得统计信息
removeDuplicates    清除表中重复数据
runScript           运行多任务脚本
dropTable           删除任务表
createTable         创建任务表
time                获得当前日期
addIndex            给任务列表添加索引
assignTask          分配服务器
exit                退出
[11:02:06|Task Table#]statistical

源表数据量:209235  合计任务量:208488
[控制模块] 导入数据: N 采集: Y 同步: N 寄存器: 启用

分组       任务数量
  amz_1  208488

任务    数量    处理中  完成    未处理  失败    同步
  2     34748   753     33988   NULL    7       NULL
  1     34748   NULL    34740   NULL    8       NULL
  3     34748   477     34250   NULL    21      NULL
  4     34748   1590    33126   NULL    32      NULL
  6     34748   2191    32552   NULL    5       NULL
  5     34748   1433    33313   NULL    2       NULL

状态            数量
  任务成功      201963
  处理中..      6450
  任务失败      75
没有重复的 标记
[11:02:23|Task Table#]
[13:50:37|Task Table#]statistical

源表数据量:209235  合计任务量:208488
[控制模块] 导入数据: N 采集: Y 同步: N 寄存器: 启用

分组       任务数量
  amz_1  208488

任务    数量    处理中  完成    未处理  失败    同步
  2     34748   NULL    34741   NULL    7       NULL
  1     34748   NULL    34740   NULL    8       NULL
  3     34748   NULL    34727   NULL    21      NULL
  4     34748   NULL    34716   NULL    32      NULL
  6     34748   NULL    34743   NULL    5       NULL
  5     34748   NULL    34746   NULL    2       NULL

状态            数量
  任务成功      208413
  任务失败      75
没有重复的 标记
[13:52:19|Task Table#]


转载请注明:(●--●) Hello.My Weicot » PHP 多进程任务自动分配 采集 函数 使用备忘 6 进程 5个小时 处理 21 万有效产品 数据测试

蜀ICP备15020253号-1