项目中遇到这样的问题:
浏览器访问某一页面,服务器相应地查询数据库,生成json给前端,并且在数据库中更新该页面的浏览量。
查看日志发现,“更新数据库中该页面的浏览量”字段非常耗时,整个过程400ms,它占了一半。
想到我们没必要在等数据库更新完毕后再给用户返回数据,这两步完全可以异步执行。考虑PHP的异步操作。
PHP异步操作的解决方案有很多:
1. http://www.360doc.com/content/11/0123/17/397482_88527668.shtml Gearman的php扩展,通过建立一个一直运行的守护进程(Deamon)来实现异步处理。
2. http://www.dewen.io/q/3970/ 使用fscokopen,或消息队列。
其实它的本质是用多线程甚至是多进程来解决异步问题。
待补充