客户端
示例
客户端使用的 是php 写的交互式客户端 可以看到任务分配的非常平均 6 进程 每个进程分配3.4748 万个任务 平均9/S 9个任务每秒
任务是远程下载国外亚马逊的图片
使用方法 以及函数说明
/**
* 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#]