博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用register_shutdown_function触发写日志,使用fastcgi_finish_request提高响应速度
阅读量:5085 次
发布时间:2019-06-13

本文共 749 字,大约阅读时间需要 2 分钟。

公司内部的市场管理系统,一直是我一个人维护,最近老是有开发埋怨,内网的账号被人改了密码,账号被解绑了。。。哈的,错在这还不是一个完整的系统,既没有严格的权限也没有做操作日志呀。。。

权限现在是准备做在下一阶段的的API网关项目里面做统一的管理,想着还是先把操作日志做起来吧。

系统框架使用的Think PHP 5,查了一下文档,http://www.kancloud.cn/manual/thinkphp5/135195,模型是支持事件的,于是计划是这样,通过模型的事件触发记录日志的动作。

看了一下系统的日志源码,发现框架是通过register_shutdown_function注册了一个方法,把执行过程中写入内存的日志信息在脚本程序执行结束后,返回客服端前写入到文件的,由于操作日志要和系统日志

有所区分,所以在入口文件处通过register_shutdown_function也注册了方法,实现过程发现没什么问题,可是想着像这种记录日志的动作,其实并不是客户端用户关心的问题,却要在响应前做,真真的是拖慢了

响应的速度呀,想着能不能有可以把这个写文件的操作放在响应客户端之后做,结果真的发现一个函数可以做到,http://www.laruence.com/2011/04/13/1991.html,这个函数就是fastcgi_finish_request,

fastcgi_finish_request函数之后的程序可以继续执行,而响应则已经发送给客户端了,我看大神的文章后也做了下测试,测试代码 https://github.com/huanglintian/log

 

转载于:https://www.cnblogs.com/alex-huanglintian/p/6566492.html

你可能感兴趣的文章
数论中的分块思想
查看>>
14. Longest Common Prefix
查看>>
浅谈贝叶斯推断
查看>>
Matlab中polyfit和regress
查看>>
C#中async/await中的异常处理
查看>>
新一代的IT实验室长啥样?
查看>>
SQL Server 2005存储过程示例
查看>>
mouseup,mousedown,mousemove,弹出框拖动效果,javascript
查看>>
python:函数和循环判断
查看>>
js 类对象
查看>>
函数可变参传值(python)
查看>>
单双击响应事件处理区分
查看>>
nio通道
查看>>
ORA-12154: TNS: 无法解析指定的连接标识符
查看>>
Java IO模型
查看>>
【2018.11.23】2018WCTest(7)
查看>>
Tomcat中catalina.bat详解
查看>>
Python的hasattr() getattr() setattr() 函数使用方法详解
查看>>
Java注解简单学习
查看>>
ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作
查看>>