2014-11-04 70 views
0

我有一个Laravel 4.2应用程序托管在Bluehost上,我想知道为什么MySql会话表永远不会清理干净。我试图增加彩票,但仍然没有喜悦。有任何想法吗?Laravel 4.2会话表未得到清除

下面是相关session.php文件设置:

'driver' => 'database', 
'lifetime' => 180, 
'expire_on_close' => true, 
'lottery' => array(2, 100) 

回答

2

在Laravel使用会话lottery值产生一个随机数,来决定是否将运行会话垃圾收集每一个要求。它采用精确的代码是:

mt_rand(1, $config['lottery'][1]) <= $config['lottery'][0]; 

如果这是真的垃圾收集将运行并检查对老年人则lifetime设置任何条目。

使用默认设置,这意味着mt_rand(1, 100) <= 2必须为true,它将平均每50次请求运行垃圾回收器。因此,只需将lottery设置为(20, 100)仍然需要应用程序在垃圾回收器触发前获取一些请求。

如果您想清除表格中的旧会话,只需将lottery值设置为(100, 100)(或任意2个相等的值)并刷新该应用程序。