swoole之 swoole_process 应用于TP框架
swoole_process 实现了多进程的管理,多个进程同时进行采集任务,
公司的框架比较low,用的tp框架,结合tp框架实现多进程的采集
这是swoole好的学习资源
https://segmentfault.com/a/1190000002946586
/**
* 用swoole多进程方法进行采集
* 采集网贷天眼下各个平台的数据,由于网贷天眼的平台的每个参数指标对应一个ajax请求,
* 所有设计每个参数指标对应一张表,这样看起来虽然比较繁琐,但有助于数据的更新和维护.
* 先循环遍历出url表中所有的属于网贷天眼的url,和cid,调用各个抓取参数方法,进行
* 入库操作
*/
public function addDataSwoole()
{ for ($i = 0; $i < 14; $i++) { $process = new \swoole_process([$this, 'swooleGetContents'], true);
$start = $process->start();
$process->write($i);
$workers[$start] = $process;
} //防止产生僵尸进程.
while (true) {
$res = \swoole_process::wait(); if ($res) {
$pid = $res['pid'];
write_logs('exit '.$pid);
}else{
break;
}
} } /**
* 这是swoole回调函数用的
* @param swoole_process $worker
*/
public function swooleGetContents(swoole_process $worker)
{
$i = $worker->read(); $urls = $this->allUrls(); switch ($i) {
case 0:
$method = 'add_new_collect_money';
break;
case 1:
$method = 'add_pure_money';
break;
case 2:
$method = 'add_rate';
break;
case 3:
$method = 'add_remainder';
break;
case 4:
$method = 'add_paid_invest_people';
break;
case 5:
$method = 'add_plat_paid';
break;
case 6:
$method = 'add_top_ten_borrower';
break;
case 7:
$method = 'add_top_ten_invest';
break;
case 8:
$method = 'add_full_scale_time';
break;
case 9:
$method = 'add_average_borrowing_time';
break;
case 10:
$method = 'add_borrowing_to_invest';
break;
case 11:
$method = 'add_invest_vs';
break;
case 12:
$method = 'add_invest_total_vs';
break;
case 13:
$method = 'add_new_borrowing_distribution';
break;
} foreach ($urls as $v) {
$res = $this->$method($v['url'], $v['cid']);
} var_dump('this process' . $method); }
swoole之 swoole_process 应用于TP框架的更多相关文章
- 领域驱动和MVVM应用于UWP开发的一些思考
领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...
- tp框架之自动验证表单
tp框架的create自动加载表单的方法可以自动根据自己定义的要求来验证表单里面的内容,但是由于是在后台执行代码,会拖慢程序运行速度,所以还是建议通过前端js来进行判断,后台只进行数据库的查询以及传值 ...
- 基于TP框架的ThinkCMF,控制器display方法源码分析
昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...
- tp框架---View视图层---模板继承(举例说明)
当我们做动态页面时,我们会发现一个网站的头部和尾部是相同的,那么我们如何用tp框架来做模板呢 ? 先看一下注意事项: (1)每个区块由<block></block>标签组成 ( ...
- tp框架-----Model模型层
1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数 ...
- tp框架的MVC模式
一.定义 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方 ...
- tp框架中的一些疑点知识-5
关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...
- 应用于Java中的一个开源的表达式语言(Expression Language)
OGNL(英文全称:Object Graph Navigation Language,中文名:对象导航图语言)是应用于Java中的一个开源的表达式语言(Expression Language),它被集 ...
- TP框架I方法详解
TP框架I方法详解 I方法是ThinkPHP众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:I('变量类型. ...
随机推荐
- HDU1755
这道题直接暴力枚举复杂度为 n!*m 但是k<100 , 所以我们可以通过取模用dp[i][j] 表示k=i 时,-x取模k为j的最小值 #include <cstdio> #inc ...
- [luoguP1962] 斐波那契数列(矩阵快速幂)
传送门 解析详见julao博客连接 http://worldframe.top/2017/05/10/清单-数学方法-——-矩阵/ ——代码 #include <cstdio> #incl ...
- 「CodePlus 2017 11 月赛」大吉大利,晚上吃鸡!
n<=50000,m<=50000的图,给s和t,问有多少点对$(a,b)$满足 嗯. 不会. 首先最短路DAG造出来,然后两个条件转述一下:条件一,$N_a$表示从s到t经过a的路径,$ ...
- ios截屏事件监听
目的:实现截屏反馈,类似支付宝的截屏上传反馈功能. 1.注册全局通知,在Appdelegate中注册截屏监听通知 - (void)registNotification{ [[NSNotificatio ...
- 【Windows系统】-- 远程桌面时,WIN键被锁定
问题重现: 在对远程机器进行操作的时候,按键时会自动变成WIN组合键,比如:你按D的效果为[WIN+D]组合键的效果 就是切换到桌面,按E就是[WIN+E]组合键的效果,就是打开资源管理器. 解决方案 ...
- 005 EIGRP
Router>en Router#config t Enter configuration commands, one per line. End with CNTL/Z. Router(co ...
- socket 由浅入深系列------ 原理(一)
来自:网络整理 个人觉得写一个网络应用程序没有是一件非常easy的事.其实,我们刚開始的时候总觉得的原则: 建立------>连接套接字------->接受一个连接---->发送数据 ...
- AutoCAD如何添加网络打印机 添加公司打印机
1 请确认你已经连接了这台网络打印机,你没法打AutoCAD图纸,但是应该能打Word文档.能打Word文档说明你驱动装好了,通信也没问题,只是AutoCAD的配置不对导致的. 2 点击打印,打印 ...
- C++开发人脸性别识别教程(16)——视频人脸性别识别
在之前的博文中我们已经可以顺利驱动摄像头来採集源图像.在这篇博文中将正式为其加入性别识别的代码,实现摄像头视频的人脸性别识别. 一.人脸检測 在得到摄像头採集的源图像之后,首先要做的就是对其进行人脸检 ...
- HTML5超科幻个人主页
在线演示地址:http://me.cpwl.site 备用地址:http://cpwl.sinaapp.com 部分截图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...