Zend framework 使用Zend_会话_处理程序_DbTable时的垃圾收集

Zend framework 使用Zend_会话_处理程序_DbTable时的垃圾收集,zend-framework,zend-session,Zend Framework,Zend Session,我试图使用Zend_Session_Handler_DbTable将会话数据保存到数据库中,但据我所知,过期的会话从未从数据库中删除 我可以看到一个正在运行的cron作业(ubuntu)删除了基于文件的会话,但我找不到gc如何处理保存在db中的会话。Zend_Session_SaveHandler_DbTable类有一个名为gc的垃圾收集方法,当您调用Zend_Session::setSaveHandler()时,它会被提供给PHP 应该根据php.ini值和session.gc除数定期调用gc

我试图使用Zend_Session_Handler_DbTable将会话数据保存到数据库中,但据我所知,过期的会话从未从数据库中删除


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

Zend_Session_SaveHandler_DbTable类有一个名为
gc
的垃圾收集方法,当您调用
Zend_Session::setSaveHandler()时,它会被提供给PHP

应该根据php.ini值和session.gc除数定期调用
gc
函数。确保将这些值设置为会导致垃圾收集在某个点运行的值


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

这是一个很好的答案!多谢各位much@drew010,因此在application.ini中设置resources.session.saveHandler.gc_probability=1 resources.session.saveHandler.gc_divisior=1000或类似的值是不够的?我需要在php.ini中编辑它?我的垃圾收集似乎只在编辑php.ini之后才起作用,并且没有监听我设置的application.ini值。