Drupal 6 - Captcha 6.24 - Cron无法截断captcha_sessions表

时间:2014-06-03 16:24:03

标签: drupal cron captcha

环境:

Drupal 6 验证码6.24

问题

今天该模块开始出现问题。关于发生了什么的第一个线索是通过报告>最近的日志条目。它受到以下困扰:

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);
}

1 个答案:

答案 0 :(得分:0)

在我的情况下,我需要比时间戳更早的挑战被截断而不是超过一天,因为桌子得到了充分的填充,而且我没有足够的空间。我所做的就是更改负责所述截断 captcha.module 的模块中的功能。

function catpcha_cron{
   db_query('DELETE FROM {captcha_sessions} WHERE timestamp < %d', time());
}

ps:我赞成了@ Clive的评论,因为它让我走上了正确的道路。谢谢!