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