我正在使用 Cakephp 1.3 并在我的数据库中保存会话。
到目前为止,尚未从“cake_sessions”表中清除任何已创建的会话。
我想知道 CakePHP 核心或进程是否会从此表中清除会话行,或者我是否需要处理这个问题。如果 CakePHP 核心或进程自动处理这个问题,我的表中的会话条目没有被清除的可能原因是什么/
我正在使用 Cakephp 1.3 并在我的数据库中保存会话。
到目前为止,尚未从“cake_sessions”表中清除任何已创建的会话。
我想知道 CakePHP 核心或进程是否会从此表中清除会话行,或者我是否需要处理这个问题。如果 CakePHP 核心或进程自动处理这个问题,我的表中的会话条目没有被清除的可能原因是什么/
我刚刚在谷歌上搜索了这个确切的问题(很高兴你问了这个问题)。不得不在#CakePHP IRC 上询问开发人员。
显然,当 PHP 触发垃圾收集时,数据库会被清理。默认情况下,这大约是每 1,000 个请求。您可以通过设置来控制频率session.gc_divisor
。
ini_set('session.gc_divisor', 1000); // this is the default
ini_set('session.gc_divisor', 1); // this will run GC on every request
// (helpful for debugging)
至少对于 CakePHP 2.x 是这样,但我怀疑它也适用于 1.3。