多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
* 不要在代码中执行`sleep`以及其他睡眠函数,这样会导致整个进程阻塞 * `exit/die`是危险的,会导致worker进程退出 * 可通过`register_shutdown_function`来捕获致命错误,在进程异常退出时做一些请求工作,具体参看[/wiki/page/305.html](/wiki/page/305.html) * PHP代码中如果有异常抛出,必须在回调函数中进行`try/catch`捕获异常,否则会导致工作进程退出 * swoole不支持`set_exception_handler`,必须使用`try/catch`方式处理异常 * Worker进程不得共用同一个`Redis`或`MySQL`等网络服务客户端,Redis/MySQL创建连接的相关代码可以放到`onWorkerStart`回调函数中。原因是如果共用1个连接,那么返回的结果无法保证被哪个进程处理。持有连接的进程理论上都可以对这个连接进行读写,这样数据就发生错乱了。具体参考[/wiki/page/325.html](/wiki/page/325.html) * 不能使用类的属性保存客户端连接信息,因为一个worker进程可以处理多个客户端连接,导致类属性数据错乱。常量则是可以的。