2
我想使用Zend_Session_Handler_DbTable將會話數據保存到數據庫,但據我所知,過期的會話永遠不會從數據庫中刪除。使用Zend_Session_Handler_DbTable時的垃圾收集
我可以看到一個正在運行的cron作業(ubuntu),它刪除了基於文件的會話,但是我找不到gc如何在db中保存的會話中工作。
我想使用Zend_Session_Handler_DbTable將會話數據保存到數據庫,但據我所知,過期的會話永遠不會從數據庫中刪除。使用Zend_Session_Handler_DbTable時的垃圾收集
我可以看到一個正在運行的cron作業(ubuntu),它刪除了基於文件的會話,但是我找不到gc如何在db中保存的會話中工作。
Zend_Session_SaveHandler_DbTable
類有一個垃圾回收方法gc
,當您撥打Zend_Session::setSaveHandler()
時,該垃圾回收方法通過session_set_save_handler
給予PHP。
gc
函數應根據php.ini值session.gc_probability
和session.gc_divisor
定期調用。確保將這些值設置爲會導致垃圾收集在某個點運行的某些值。
還要確保創建DBTABLE保存處理程序,因爲默認gc
函數使用這些列,以確定哪個會話錶行是舊的,應當刪除,當你指定modifiedColumn
和lifetimeColumn
選項。
這是一個很好的答案!非常感謝 – Optimus
@ drew010,所以設置resources.session.saveHandler.gc_probability = 1 resources.session.saveHandler.gc_divisor = 1000或者application.ini中的某種東西是不夠的?我需要在php.ini中編輯它?看來我的垃圾收集只在編輯php.ini後才起作用,並且不聽我設置的application.ini值。 – Darius