用swoole实现mysql的连接池--摘自https://github.com/153734009/doc/blob/master/php/mysql_pool.php
| <?php | |
| $serv = new swoole_server("0.0.0.0", 9508); | |
| $serv->set(['worker_num'=>1, 'task_worker_num'=>5]); | |
| function onReceive($serv, $fd, $from_id, $data) | |
| { | |
| $sql = $data; | |
| $result = $serv->taskwait($sql); | |
| if($result !== false){ | |
| $serv->send($fd, $result . "\n"); | |
| }else{ | |
| $serv->send($fd, "Err:Task timeout\n"); | |
| } | |
| //异步的时候就麻烦了,需要把$fd传递到onFinish,才能send数据到 | |
| //$serv->task($sql); | |
| } | |
| /** | |
| * task保持数据库连接 | |
| * 使用静态变量,因为变量没有释放,所以才能保持连接 | |
| * mysql连接的数量= task_worker_num | |
| */ | |
| function onTask($serv, $fd, $from_id, $sql) | |
| { | |
| static $conn = null; | |
| if($conn == null){ | |
| $conn = mysqli_connect('127.0.0.1', 'root', '123456', 'help'); | |
| if(!$conn){ | |
| $conn = null; | |
| $serv->finish('ERR:'.mysqli_connect_error()); | |
| return; | |
| } | |
| } | |
| $result = $conn->query($sql); | |
| if(!$result){ | |
| $serv->finish('ERR:'.mysqli_error($conn)); | |
| return; | |
| } | |
| $data = $result->fetch_all(MYSQLI_ASSOC); | |
| $serv->finish('OK:'.serialize($data)); | |
| } | |
| function onFinish($serv, $task_id, $data) | |
| { | |
| // 异步Task时有效 | |
| echo "AsyncTask Finish:Connect.PID=".posix_getpid().PHP_EOL; | |
| } | |
| $serv->on('Receive', 'onReceive'); | |
| $serv->on('Task', 'onTask'); | |
| $serv->on('Finish', 'onFinish'); | |
| $serv->start(); | |
| //以下是客户端代码 | |
| //$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC); //同步阻塞 | |
| //$client->connect('172.18.107.194', 9508, 0.5, 0); | |
| //$client->send("show tables"); | |
| //$data = $client->recv(); | |
| /** | |
| * 查看mysql连接 | |
| * | |
| * 1. mysql -uroot -p123456 | |
| * 2. show status; | |
| * 其中的 | |
| * Threads_connected | 1 | |
| * 就是mysql连接数 | |
| */ |
用swoole实现mysql的连接池--摘自https://github.com/153734009/doc/blob/master/php/mysql_pool.php的更多相关文章
- Node.js使用MySQL的连接池
使用Nodejs+MySQL肯定比PHP和MySQL的组合更适合做服务器端的开发. 使用Nodejs你会从他的异步行为中获益良多.比如,提升性能,你无须在从已有的MySQL数据库迁移到其他的NoSQL ...
- [nodejs]解决mysql和连接池(pool)自动断开问题
最近在做一个个人项目,数据库尝试使用了mongodb.sqlite和mysql.分享一下关于mysql的连接池用法.项目部署于appfog,项目中我使用连接池链接数据库,本地测试一切正常.上线以后,经 ...
- Swoole 中使用 PDO 连接池、Redis 连接池、Mysqli 连接池
连接池使用说明 所有连接池的实现均基于 ConnectionPool 原始连接池: 连接池的底层原理是基于 Channel 的自动调度: 开发者需要自己保证归还的连接是可重用的: 若连接不可重用,需要 ...
- hibernate+mysql的连接池配置
1:连接池的必知概念 首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了. 以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放.如果频繁的 ...
- Tomcat 下 mysql的连接池配置和使用
最近维护的一个项目出了问题,最后分析是卡在数据库连接池上,然后就做了些学习. 先把我自己的方法写出来,再说下网上其他的没有成功的方法. 1.首先当然是先把mysql的jar包放在lib目录下,tonc ...
- Python下Mysql数据连接池——单例
# coding:utf-8 import threading import pymysql from DBUtils.PooledDB import PooledDB from app.common ...
- nodejs mysql 创建连接池
用Nodejs连接MySQL 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javas ...
- MySQL 使用连接池封装pymysql
备注:1,记得先修改连接的数据库哦,(用navicat更方便一点):2,分开两个py文件写入,运行sqlhelper.py文件 一.在utils.py中写 import pymysqlfrom DBU ...
- 码海拾遗:基于MySQL Connector/C++的MySQL操作(连接池)
1.MySQL安装及简单设置 (1)安装:在OSX系统下,可以使用万能的“brew install”命令来进行安装:brew isntall mysql(默认安装最新版的MySQL) (2)启动:br ...
随机推荐
- Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC 配置校验器
Spring4新特性——泛型限定式依赖注入 Spring4新特性——核心容器的其他改进 Spring4新特性——Web开发的增强 Spring4新特性——集成Bean Validation 1.1(J ...
- 机器学习: 共轭梯度算法(PCG)
今天介绍数值计算和优化方法中非常有效的一种数值解法,共轭梯度法.我们知道,在解大型线性方程组的时候,很少会有一步到位的精确解析解,一般都需要通过迭代来进行逼近,而 PCG 就是这样一种迭代逼近算法. ...
- VMware网络连接IP设置
网络配置(仅主机模式) 一.改变虚拟机IP地址达到联网目的 仅主机模式,第一步,打开我的电脑属性,查看VMt1网卡IP设置,设置一个区段:192.168.xx.aa xx.aa自由设置,简 ...
- c++函数参数类型-引用、指针、值
c++函数参数类型-引用.指针.值 https://www.cnblogs.com/lidabo/archive/2012/05/30/2525837.html
- 使用kcptun安全代理访问服务
KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果. KCP:https://github.com/skywind ...
- Web form ajax请求
1.添加web应用程序 2.添加web窗体 web窗体Demo <%@ Page Language="C#" AutoEventWireup="true" ...
- DES算法,JAVA,遇到的问题
(1)使用Based64编码时出现的问题. java.lang.IllegalArgumentException 这中情况出现在解密时,主要原因是based64加密时用了sun的内部包sun.misc ...
- 51Nod 1135:元根(数论)
1135 原根 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.(其中φ(m) ...
- 动手动脑-Java的继承与多态
一. class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); ...
- gcd(1,n)+gcd(2,n)....gcd(n-1,n); Uva11426
#include<bits/stdc++.h> #define int long long using namespace std; ; int phi[maxn]; int prime[ ...