2014-11-04 93 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個相等的值)並刷新該應用程序。