swoole 同步task
来源:互联网 发布:乐视vr 没数据 编辑:程序博客网 时间:2024/05/20 07:14
<?php $serv = new swoole_server("0.0.0.0",9508); $serv->set(['worker_num'=>1,'task_worker_num'=>5]); functiononReceive($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 */ functiononTask($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)); } functiononFinish($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连接数 */
https://wiki.swoole.com/wiki/page/560.html
https://wiki.swoole.com/wiki/page/560.html
http://rango.swoole.com/archives/category/php_swoole/page/2
http://git.oschina.net/swoole/swoole_framework/blob/master/libs/Swoole/Async/MySQL.php
http://www.jb51.net/article/110702.htm
https://wiki.swoole.com/wiki/page/145.html
https://wiki.swoole.com/wiki/search/?q=+%24serv-%3Etaskwait
阅读全文
0 0
- swoole 同步task
- swoole关于task事项
- 2 Swoole的Task使用
- php 扩展swoole之task
- Swoole 实例二(Task功能)
- swoole入门教程02-Swoole的Task使用以及swoole_client
- swoole的worker和task区别
- swoole
- swoole
- swoole入门教程03-Timer定时器、心跳检测及Task进阶实例:mysql连接池
- 基于swoole的task功能实现程序内的map-reduce
- 任务线程和同步(二、Task)
- swoole流程图
- swoole(一)
- swoole来袭
- swoole 安装
- swoole 安装
- swoole 安装
- tf API 研读4:Inputs and Readers
- Js学习之路三 --- 函数传参
- 正则表达式、Object、包装类
- 关于VMware时间不同步的解决方法
- 关于师徒制的一些思考
- swoole 同步task
- Android控件介绍及用法
- 梯度下降(Gradient Descent)
- OpenCV编程->双目标定(一)
- SQL Exercises/Pieces and providers
- 斐波那契数
- HDOJ1513 LCS水题
- shell
- JavaScript脚本——简单运算