【发布时间】:2014-06-03 16:24:02
【问题描述】:
环境:
Drupal 6 验证码 6.24
问题
今天模块开始出现问题。关于正在发生的事情的第一个线索是通过 Reports > 最近的日志条目 。它被以下问题困扰:
Duplicate entry ***** for key ****** query:
INSERT into captcha_sessions (uid, sid, ip_address, timestamp,
form_id, solution, status, attempts) VALUES (....)
不出所料,桌子很大,我说的是超过 25mbs。我的印象是 Drupal 的 cron 在运行时负责删除该表中的数据(以及日志)。因为它是 Drupal 6,所以我转到 poormanscron 并让它运行......但没有任何改变。
我的临时解决方案是手动截断所述表。但令我烦恼的是 Drupal 的 cron 并没有自己这样做。所以,我想知道,我唯一的机会是用自定义脚本服务器端保持这个表的大小吗?
我需要设置什么以便 Drupal 的 cron 删除日志并清除该表吗?由于是 Drupal 6,我很迷茫,因为在 Drupal 7 中我可以创建一个 cron 作业。
提前致谢。
编辑
此函数可在captcha.module 文件中找到。但它并没有像它说的那样做,表格永远不会被截断。
function catpcha_cron{
db_query('DELETE FROM {captcha_sessions} WHERE timestamp < %d', time() - 60*60*24);
}
【问题讨论】:
-
检查日志是否有错误...
captcha_cron()“删除超过 1 天的挑战”所以如果你的 cron 正在运行,要么应该发生这种情况,要么你至少应该看到一个错误 -
我不确定我是否理解。我去了最近的日志条目,在那里我已经被 cron 过滤了。我所看到的只是 4 个 Cron 运行完成的条目……除此之外还有一个非成员。我要做的是在模块中创建该 captcha_cron() 函数,或者首先查看它是否在其中并在那里执行我的表截断。