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('变量类型. ...
随机推荐
- hdu_1398_Square Coins_201404260953
Square Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- operamasks—omGrid/omBorderLayout的混合使用
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs&q ...
- 命令行man的帮助手册
http://blog.csdn.net/gatieme/article/details/51656707 指定使用那种语音的手册,可以使用命令选项-M man -M /usr/share/man/z ...
- python操作mysql方法和常见问题
http://www.cnblogs.com/ma6174/archive/2013/02/21/2920126.html 安装mysql模块 sudo easy_install mysql-pyth ...
- Android应用层View绘制流程之measure,layout,draw三步曲
概述 上一篇博文对DecorView和ViewRootImpl的关系进行了剖析,这篇文章主要是来剖析View绘制的三个基本流程:measure,layout,draw.仅仅有把这三个基本流程搞清楚了, ...
- C#.NET 如何快速输入一个对象事件对应的方法
直接在Textbox图像对象中找到这个对象的KeyPress方法,然后输入触发的事件名称.效率更高,不容易出错. "void TypeAreaKeyPress(object sender, ...
- python可变參数调用函数问题
一直使用python实现一些想法,近期在使用python的过程中出现这样一个需求,定义了一个函数.第一个是普通參数.第二个是默认參数,后面还有可变參数,在最初学习python的时候,都知道非keywo ...
- makefile中的一点知识
makefile文件里以下这一部分展开是什么样的呢? .. . mytarget=foo $(mytarget): $(mytarget).c gcc -o $(mytarget) $ ...
- ie 代理设置中地址和端口置灰的解决办法
@echo offecho 代理设置reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings&quo ...
- Spring MVC 数据验证——validate编码方式
1.导入jar包 validation-api-1.0.0.GA.jar这是比較关键的一个jar包,主要用于解析注解@Valid. hibernate-validator-4.3.2.Final.ja ...