我有一个构建在Zend Framework和Mysql上的PHP应用程序。 我有应用日期范围的报告页面,并查询数据库并返回输出。 如果我选择几天,查询运行得很快。但是,如果我选择几个月的日期范围,由于数据输出量很大,需要很长时间。
现在我的问题是,每当我运行更宽的日期范围,并且流程开始运行很长时间,我就无法取消它。 我无法停止浏览器,或重新加载浏览器,即使我关闭浏览器并打开新页面,apache也没有响应。换句话说,这个过程迫使apache挂起。 打破这个问题的唯一方法是在linux服务器上终止进程或重启apache。
我很想知道我可以对代码做些什么改进,以便能够随时强制停止进程。
您如何开发代码以避免像这样的锁定?我缺少什么?
谢谢
答案 0 :(得分:0)
我建议的最好方法是使用日期范围功能。 在前端,当选择日期并单击提交按钮时,触发一个函数来计算天数的差异。
如果长度超过所需范围,请不要让表单提交,并向用户显示选择较低日期范围的消息。
还要确保在执行查询的页面上验证相同的内容,因此即使用户使用javascript,后端也会忽略该请求并且不会执行查询。