PHP会话、超时和跟踪

PHP会话、超时和跟踪,php,mysql,Php,Mysql,我正在为我的一个客户开发一个前端驱动的应用程序。此应用程序具有“启动销售会话”的概念,它在逻辑上不同于标准会话,但在技术上相同 在会话启动时,会话启动时间保存在数据库中,并应在6小时后自动过期 当用户登录并使用浏览器上的应用程序时,上述操作就可以了,因此我可以检查当前时间和会话开始时间之间的差异,并执行必要的操作 我想知道是否有一种方法可以在数据库中运行6小时后自动终止会话,而无需用户在线或使用浏览器上的应用程序 注意:数据库在Mysql上 提前谢谢 最好的解决方案是Cron作业。您可以编写一个

我正在为我的一个客户开发一个前端驱动的应用程序。此应用程序具有“启动销售会话”的概念,它在逻辑上不同于标准会话,但在技术上相同

在会话启动时,会话启动时间保存在数据库中,并应在6小时后自动过期

当用户登录并使用浏览器上的应用程序时,上述操作就可以了,因此我可以检查当前时间和会话开始时间之间的差异,并执行必要的操作

我想知道是否有一种方法可以在数据库中运行6小时后自动终止会话,而无需用户在线或使用浏览器上的应用程序

注意:数据库在Mysql上


提前谢谢

最好的解决方案是Cron作业。您可以编写一个PHP脚本,查询数据库中任何超过6小时的打开会话,然后关闭它们。然后在网站控制面板中设置一个Cron作业,每隔一段时间调用一次脚本。每10分钟一次应该足以满足您的需求。

您可以在php配置中设置一个

session.gc_最大寿命21600


但如果你坚持使用数据库,你应该调查谁调用了一个脚本来检查年龄和删除会话。

Cron-Job听起来对你很有用。Cron-Job很好,但至少会有1000个用户同时使用该应用,我一点也不夸张。所以问题是,我多久设置一次cron作业运行一次,什么时候是cronjob干扰数据库的理想时间?因为就数据而言,它是一个相当繁重的应用程序。对于MySQL服务器来说,1000个条目是非常少的。执行cron作业的最佳时间是MySQL服务器最空闲的时间。我认为最好是通过php将到期硬编码到会话中。不需要cron作业