2

我正在尝试使用 Zend_Session_Handler_DbTable 将我的会话数据保存到数据库中,但据我所知,过期的会话永远不会从数据库中删除。

我可以看到一个 cron 作业正在运行(ubuntu),它删除了基于文件的会话,但我找不到 gc 如何处理保存在 db 中的会话。

4

1 回答 1

6

该类Zend_Session_SaveHandler_DbTable有一个名为的垃圾收集方法gcsession_set_save_handler当您调用Zend_Session::setSaveHandler().

gc函数应根据 php.ini 值session.gc_probabilitysession.gc_divisor. 确保将这些值设置为会导致垃圾收集在某些时候运行的值。

还要确保在创建 DbTable 保存处理程序时指定modifiedColumn和选项,因为默认函数使用这些列来确定会话表中的哪些行是旧的并且应该被删除。lifetimeColumngc

于 2012-09-13T19:31:54.237 回答