Codeigniter 3会话和RDS - 随机注销

时间:2018-02-08 16:32:15

标签: mysql codeigniter amazon-web-services rds

有人可以解释或告诉我某种“设置”是什么吗?在Codeigniter会解决这个问题吗?

系统:亚马逊AWS EC2(AWS Linux Centos 6.9)

数据库:Amazon AWS RDS(兼容Mysql的5.6.34)

框架:Codeigniter 3.0.6

PHP:5.6

问题:运行我的网站时,我会在5分钟后发生随机注销。这意味着当我启动计算机时,5分钟后会话被清除,我发现自己已经注销。 (随机时间)。这将持续一整天。 (随机退出)

将codeigniter中的会话设置为files

时,不会发生这种情况

将其设置为database会导致此问题(注销在24小时内发生)。

我的网页使用活动的ajax,它一直在点击codeigniter系统。我读到有一个Ajax Race条件可以导致它,但我注意到在阅读CI代码后,它与此命令有关

if ($this->_db->query("SELECT GET_LOCK('".$arg."', 300) AS ci_session_lock")->row()->ci_session_lock)

这似乎锁定了'在AJAX竞争条件期间,这会导致CI丢弃我的会话cookie信息(当然还会在$ this-> fail())调用下将其记录下来。我们正在使用RDS系统,所以我怀疑RDS上的GET_LOCK与真正的MYSQL系统上的GET_LOCK略有不同。

有人有想法/想法吗?是的,我尝试了sess_expirationsess_time_to_update的大量组合,解决问题的唯一方法是返回files

由于我希望将来我的系统可以在多台服务器上运行,files可能不合适(如果你知道CodeIgniter你知道为什么,这里解释得太复杂了。)

任何人都可以就RDS出现GET_LOCK问题的原因提出一些建议/答案吗?

0 个答案:

没有答案