官网
教程
文档
官网文档
小程序集群与uniapp
小程序app接口教程
冰蓝世界版
阿赖耶识与随风版
网站首页
齐博X1教程专栏
文章列表
推荐
耗时的功能异步启用子进程
超级蜘蛛查
2024-02-28 16:29:32
58
注意:异步子进程功能只能用在linux系统服务器才生效,并且要开启`pcntl`这个PHP扩展,但不影响windows执行,也就是说,windows服务器虽然不生效,但代码还是会执行的,只不过不能分子进程异步执行,而是同步执行,就是需要用户等待更长的时间而已 ***** 对于很耗时的,不需要用户交互的功能,比如用户回复贴子需要公众号或者手机信息或邮件通知楼主(这些都非常耗时的),同时还需要更新网站的今日发贴数,这些对回贴人来说,根本就不需要马上看到的效果,而程序处理起来又可能很耗时,就可以考虑开启子进程。 关键点有两个:其一,用户并不需要马上看到执行效果,其二,可能比较耗时。这个时候就可以考虑采用子进程了。 下面拿一个图讲解 ![](https://img.kancloud.cn/4b/25/4b250ff2cdc1f9e8d3eccde3540f1de8_1467x647.png) 其中`fork_set();` 函数后面的代码就开始进行子进程。这个函数前面的代码就是用户当前所等待执行的。 ![](https://img.kancloud.cn/f8/97/f8972254cbe91e778ad55d426160e3bf_1071x533.png) 如下图所示,从`fork_set()` 函数这个位置开始就启用子进程。你把耗时的,不需要用户关注的功能就放在子进程里,让他在后台异步执行。需要用户得到响应的结果,就要放在主进程里同步执行反馈给用户。 至于`fork_set()` 函数最好放在哪个位置呢? 一般放在用户提交数据入库以后那个分界点,因为入库前都需要做判断。并且也不能允许它重复入库。所以最合理的位置就是入库之后那个分界点。 异步子进程更适合POST数据,取数据的话不是很适合。 通过 `fork_main()`==true 可以判断是主进程 ,通过`fork_son()`==true 可以判断是子进程。 写代码的时候,只能这样写 ~~~ if( fork_main()){ //执行代码 } 或者 if( fork_main()==true){ //执行代码 } if( fork_son()){ //执行代码 } 或者 if( fork_son()==true){ //执行代码 } ~~~ 绝对不可以按下面的方法处理,也就是说不能判断为非这种情况,必须按是来判断,不能按非来判断。 ~~~ if( !fork_main()){ //执行代码 } if( fork_main()==false){ //执行代码 } if( fork_son()==false){ //执行代码 } if( !fork_son()){ //执行代码 } ~~~ 特别提醒,`fork_set()` 函数后面的代码如果不做判断的话,主进程与子进程都会同时执行,如果有入库的话,会导致重复入库,这一点务必要注意!!! 所以对于入库的操作必须要做判断处理。不入库的代码,取数据的代码,重复执行是没问题的。 `fork_set()` 函数前面的代码,就只执行一次,子进程不会单独再去执行。子进程只会从`fork_set()` 函数的后面开始执行。是异步开启一个进程去执行。`fork_set()` 函数前是什么变量值,子进程会继续沿用。子进程修改后的变量值不会影响到主进程,`fork_set()` 函数后的逻辑与变量,主进程 与子进程他们是互相隔离的。
本文链接:https://x1.wanxiangsucai.com/read/60.html
上一篇:
下一篇:齐博x1云标签插件-一件提取关键词无法使用的解决办法
相关文章推荐
1.
用异步加载,可加快网页打开速度
2.
异步加载标签数据
3.
启用redis缓存,让网站更快
4.
JS网页快速接入支付功能
5.
表单快速启用城市地区功能
6.
耗时的功能异步启用子进程
7.
使用缩略图功能加快列表页打开速度
8.
任何页面加入即时聊天功能
9.
如何开启自定义标签模板功能
10.
插件如何做前台风格切换的功能详解
齐博X1教程专栏最新文章
1.
通过随机二次元壁纸接口向齐博x1 bbs系统发布信息
2.
齐博x1云标签插件-一件提取关键词无法使用的解决办法..
3.
关于thinkphp5
4.
齐博X1更新记录
5.
解决Web部署 svg/woff/woff2字体 404错误
6.
云市场注意事项
7.
如何调取当前模块ID
8.
URL伪静态设置
9.
QQ登录接口配置
10.
邮箱接口设置之QQ企业邮箱
齐博X1教程专栏文章推荐
1.
主题内容如何群发给圈子成员
2.
第一集,入门基础篇
3.
标签的嵌套用法,调用聚合数据
4.
引用布局模板注意事项
5.
005-系统设置之邮箱接口设置
6.
搜索结果调用其他字段的办法
7.
齐博X1的诞生
8.
万能数据统计接口
9.
钩子模块插件数据表讲解
10.
内容页标签
建站工具推荐
您可能感兴趣的文章
通过随机二次元壁纸接口向齐博x1 bbs系统发布信息
齐博x1云标签插件-一件提取关键词无法使用的解决办法
关于thinkphp5
齐博X1更新记录
解决Web部署 svg/woff/woff2字体 404错误
云市场注意事项
如何调取当前模块ID
URL伪静态设置
QQ登录接口配置
邮箱接口设置之QQ企业邮箱