客户端
示例

客户端使用的 是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 万有效产品 数据测试
