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框架的更多相关文章

  1. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

  2. tp框架之自动验证表单

    tp框架的create自动加载表单的方法可以自动根据自己定义的要求来验证表单里面的内容,但是由于是在后台执行代码,会拖慢程序运行速度,所以还是建议通过前端js来进行判断,后台只进行数据库的查询以及传值 ...

  3. 基于TP框架的ThinkCMF,控制器display方法源码分析

    昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...

  4. tp框架---View视图层---模板继承(举例说明)

    当我们做动态页面时,我们会发现一个网站的头部和尾部是相同的,那么我们如何用tp框架来做模板呢 ? 先看一下注意事项: (1)每个区块由<block></block>标签组成 ( ...

  5. tp框架-----Model模型层

    1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数 ...

  6. tp框架的MVC模式

    一.定义 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方 ...

  7. tp框架中的一些疑点知识-5

    关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...

  8. 应用于Java中的一个开源的表达式语言(Expression Language)

    OGNL(英文全称:Object Graph Navigation Language,中文名:对象导航图语言)是应用于Java中的一个开源的表达式语言(Expression Language),它被集 ...

  9. TP框架I方法详解

    TP框架I方法详解   I方法是ThinkPHP众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:I('变量类型. ...

随机推荐

  1. 在ubuntu 18.04下装有线守护wg

    wg你懂的是什么,下面讲讲我这段时间安装过程,发觉这个软件和CENTOS 7下面不是很合拍,它更适合ubuntu,因为ubuntu仍然用iptables,而CENTOS 早就用了firewalld了, ...

  2. POJ 1679 判最小生成树的不唯一性 或 利用次小生成树求解

    题目大意: 给定一个无向图,寻找它的最小生成树,如果仅有一种最小生成树,输出所有边的和,否则输出unique! 根据kruscal原理来说,每次不断取尽可能小的边不断添加入最小生成树中,那么可知如果所 ...

  3. 无法打开物理文件 "X.mdf"。操作系统错误 5:"5(拒绝访问。)"。 (Microsoft SQL Server,错误: 5120)解决

    环境 SQLServer 2008 R2 问题 附加数据库出现“无法打开物理文件 "X.mdf".操作系统错误 5:"5(拒绝访问.)". (Microsoft ...

  4. POJ1328 Radar Installation 解题报告

    Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...

  5. 1.spring boot要求最低jdk1.8,平安默认1.6问题,-》安装JDK1.8 2.maven 3.3.3要求最低jdk1.7->安装jdk 1.8

    1.spring boot要求最低jdk1.8,平安默认1.6问题,->安装JDK1.82.maven 3.3.3要求最低jdk1.7->安装jdk 1.8

  6. angularJS 系列(七)

    In AngularJS 1.3+, there is One-time binding built-in: The main purpose of one-time binding expressi ...

  7. iOS自己定义返回button(不影响返回手势)

    此方法能够自己定义返回button,且不影响返回手势. 新方法: self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] in ...

  8. Mysql-SQL优化-统计某种类型的个数

    有时我们想统计某种类型有多少个,会用这个SQL. 全表扫描之余,还要filesort.耗时1.34秒. mysql> select country,count(*) from t1 group ...

  9. LeetCode_Mysql_Second Highest Salary

    176. Second Highest Salary 1. 问题描写叙述: 写一个sql语句从 Employee 表里获取第二高位的工资. 2. 解决思路: 这道题非常easy,就当热身了.首先用ma ...

  10. [转] Ubuntu/Linux Mint/Debian 安装 Java 8

    本PPA由webupd8制作,支持Ubuntu .04以及对应的Linux Mint版本,Oracle Java 8包提供JDK8 和 JRE8. sudo add-apt-repository pp ...