我正在尝试使用 Zend_Session_Handler_DbTable 将我的会话数据保存到数据库中,但据我所知,过期的会话永远不会从数据库中删除。
我可以看到一个 cron 作业正在运行(ubuntu),它删除了基于文件的会话,但我找不到 gc 如何处理保存在 db 中的会话。
我正在尝试使用 Zend_Session_Handler_DbTable 将我的会话数据保存到数据库中,但据我所知,过期的会话永远不会从数据库中删除。
我可以看到一个 cron 作业正在运行(ubuntu),它删除了基于文件的会话,但我找不到 gc 如何处理保存在 db 中的会话。
该类Zend_Session_SaveHandler_DbTable
有一个名为的垃圾收集方法gc
,session_set_save_handler
当您调用Zend_Session::setSaveHandler()
.
该gc
函数应根据 php.ini 值session.gc_probability
和session.gc_divisor
. 确保将这些值设置为会导致垃圾收集在某些时候运行的值。
还要确保在创建 DbTable 保存处理程序时指定modifiedColumn
和选项,因为默认函数使用这些列来确定会话表中的哪些行是旧的并且应该被删除。lifetimeColumn
gc