内容简介:从可使用新版本增加了两个方法用于跟踪协程运行。
重大新特性
支持 Redis/PDO/MySQLi
从 4.1.0
版本开始支持了对 PHP
原生 Redis
、 PDO
、 MySQLi
协程化的支持。
可使用 Swoole\Runtime::enableCorotuine()
将普通的同步阻塞 Redis
、 PDO
、 MySQLi
操作变为协程调度的异步非阻塞 IO
Swoole\Runtime::enableCoroutine();
go(function () {
$redis = new redis;
$retval = $redis->connect("127.0.0.1", 6379);
var_dump($retval, $redis->getLastError());
var_dump($redis->get("key"));
var_dump($redis->set("key", "value"));
$redis->close();
});
协程跟踪
新版本增加了两个方法用于跟踪协程运行。
-
Coroutine::listCoroutines()可遍历当前所有协程 -
Coroutine::getBackTrace($cid)可获取某个协程的函数调用栈
function test1() {
test2();
}
function test2() {
while(true) {
co::sleep(10);
echo __FUNCTION__." \n";
}
}
$cid = go(function () {
test1();
});
go(function () use ($cid) {
while(true) {
echo "BackTrace[$cid]:\n-----------------------------------------------\n";
//返回数组,需要自行格式化输出
var_dump(co::getBackTrace($cid))."\n";
co::sleep(3);
}
});
BackTrace[1]: ----------------------------------------------- #0 Swoole\Coroutine::sleep(10) called at [/home/htf/workspace/swoole/examples/coroutine/backtrace.php:8] #1 test2() called at [/home/htf/workspace/swoole/examples/coroutine/backtrace.php:3] #2 test1() called at [/home/htf/workspace/swoole/examples/coroutine/backtrace.php:14]
其他修改
-
重构
Co\ChannelC底层代码为C++, 解决复杂场景的非预期结果, 实现高稳定 -
重构
Co\Http\ClientC底层代码为C++协程模式, 解决异步时序问题, 实现高稳定 -
支持在协程和Server中使用
exit, 此时将会抛出可捕获的\Swoole\ExitException异常 -
移除所有迭代器(table/connection/coroutine_list)的PCRE依赖限制
-
增加
open_websocket_close_frame配置, 可以在onMessage事件中接收close帧 -
废弃
Http\Response->gzip()方法,改为使用http_compression配置项。底层会自动判断客户端传入的Accept-Encoding选择合适的压缩方法, 新增谷歌BR压缩支持 -
增加
Co\Http\Client->addData()方法,可将内存中的数据作为上传文件内容进行发送 -
Solaris系统支持 -
Http2支持
MAX_FRAME_SIZE分帧发送和MAX_HEADER_LIST_SIZE处理, 客户端增加isStreamExist方法检测是否存在对应流 -
swoole_http_response->status增加reason参数 -
修复MySQL prepare 中无符号参数使用了有符号值导致数值溢出的问题
-
修复HTTP2的
onRequest回调中没有协程的问题 -
修复
tasking_num某些特殊情况下变为-1的问题 -
修复HTTP2-server的window-update帧构造错误
-
修复所有 PHP 版本下的所有级别的编译warning
-
GCC版本小于4.8时将会产生编译错误
-
修复 MySQL 使用prepare时未使用参数绑定导致的内存分配不断增长
-
修复HTTP2重连时旧stream内存丢失泄露
底层开发相关
-
统一文件命名 #970
-
Co\Http\Client使用了create_obj和free_obj保证内存安全, 防止错误的PHP代码引发内存问题
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 浏览器原生支持平滑滚动
- Tiercel 2!完美支持原生级别后台下载
- cURL 7.70.0 发布,原生支持 JSON、实验性支持 MQTT
- SQL Server 2016 JSON原生支持实例说明
- Chrome 有望在 Windows 10 上支持原生通知功能
- 微软放大招?Windows 10 将加入原生虚拟机支持
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning ASP.NET 4 in C# and Vb
Imar Spaanjaars / Wrox / 2010-3-19 / GBP 29.99
This book is for anyone who wants to learn how to build rich and interactive web sites that run on the Microsoft platform. With the knowledge you gain from this book, you create a great foundation to ......一起来看看 《Beginning ASP.NET 4 in C# and Vb》 这本书的介绍吧!