欢迎各位兄弟 发布技术文章
这里的技术是共享的
1、增加 PHP 内存
下面是我的办法 在 setting.php最后加上下面两行
2、includes\common.inc :
function drupal_cron_run() {
// If not in 'safe mode', increase the maximum execution time:
if (!ini_get('safe_mode')) {
set_time_limit(240); '将240改为2400
}
来自 http://bluesnow.okwedo.com/datum/367 http://bluesnow.okwedo.com/taxonomy/term/123
偶然发现用了一段时间的drupal网站里,的cache_form这个表好大,居然有1.3G共计8000多条的数据……
一查资料,实际上cache_form根本只是缓存,根本没用
折腾了几天,解决如下:
1、资料得知是cron没有正常运行,可以 在管理界面的reports--状态中手动运行cron,但失败了???!!!
2、再查资料得知,必须从build--modules里关闭core里的search……也许是个bug?!
3、关闭,然后从Perfermance里Clear cached data,再手动运行cron,成功!
4、看数据还是1.3G,崩溃,登陆phpmyadmin,原来表记录已经没有没有了,成了多余数据,优化,搞定,最后只有13兆数据……!!
来自 http://forum.gsean.org/apps.php?q=diary&a=detail&did=10342&uid=2
Re: cron 执行失败
模块太多或者网站内容节点太多都会导致cron超时失败的, 只需要暂时关闭些消耗资源严重的模块(比如search index), cron就可以运行了,
aggregator经常会有这个问题,暂时把它关闭掉,或者删除有问题的feed可能会有帮助。
------------------------------------------- 网站建设
网站建设
Re: cron 执行失败
好像是消耗太多记忆体..我改了一下设定.可以使用了.(没有关闭模组)
Re: cron 执行失败
可以多跑一点,这样一次跑就不会消耗太多

你的站流量大?
-- from open mind to open source~
-- from open mind to open source~

Re: cron 执行失败
修改includes/module.inc, 如下, 就可以在watch dog 看到是哪里挂掉的.
foreach (module_implements($hook) as $module) {
$function = $module .'_'. $hook;
if ($hook == 'cron') watchdog('cron', "hit $module cron"); / /加上这行
$result = call_user_func_array($function, $args);
if (isset($result) && is_array($result)) {
$return = array_merge($return, $result);
}
else if (isset( $result)) {
$return[] = $result;
}
}
http://dennys.tiger2.net/
Re: cron 执行失败
dennys:
tky最近也遇到cron执行上面的问题,手动执行cron的时候会跑很久跑不完。所以就按照你讲得,加入一行程式码在includes/module.inc,用watchdog去找哪里有问题。
结果出来,是在执行search cron之后出现三行这样的错误码:
Invalid argument supplied for foreach() 在档案/home/public_html/drupal/modules/taxonomy/taxonomy.module 里的第1214 行。
居然是taxonomy.module出问题?真叫人难以置信。这个要怎么解?
这是1214行左右的程式码:
/**
* Implementation of hook_nodeapi('update_index').
*/
function taxonomy_node_update_index(&$node) {
$output = array();
foreach ($node->taxonomy as $term) {
$output[] = $term- >name;
}
if (count($output)) {
return '<strong>('. implode(', ', $output) .')</strong>';
}
}
系统总是显示说cron正常运作;但这样很难说是正常运作吧!
Drupal版本是6.13最新版的说。
tky
tky
Re: cron 执行失败
tky您好:
我也遇到相同问题,想请问后来你是怎么解决的呢?谢谢
人人把心中的爱发挥出来,就能凝聚善的福业,形成善的循环。(静思语录)
Re: cron 执行失败
这很久之前的事情,忘的差不多了。
不过我目前也还是有碰到cron执行时间过长的问题,正参考http://drupal.org/node/553430,改用http://drupal.org/project/supercron测试
效能问题真的很令人头疼
tky
Re: cron 执行失败
了解~
我是用poormanscron去执行的~
那我也用supercron来测试看看~ ^_^
人人把心中的爱发挥出来,就能凝聚善的福业,形成善的循环。(静思语录)
Re: cron 执行失败
怪怪的耶, 多出来的log 应该是长得像这样的, taxonomy 的讯息和你加的那几行应该没关系吧?
http://dennys.tiger2.net/
Re: cron 执行失败
按理说,tky的watchdog应该要像dennys的贴图这样,不过中间从hit search cron这个项目到下一个项目之间,一定会出现三行
而且cron.php会一直不停地在load,执行非常久之后才有结果。
tky也觉得很奇怪说。
而且刚才发现,不只一个站有同样的问题。
另一个也是从5.x升级到6.13的站(不同伺服器)也有这个问题。
不知为何,感觉这问题似曾相似?人老了,记不起来。
tky
tky
Re: cron 执行失败
如果网站要跑cron.php然后呈空白页面的话…
是因为记忆体不够的关系嘛?想询问大家一下
以下为我的系统设定…
MySQL资料库5.0.45
PHP 5.2.12
PHP register globals已关闭
PHP记忆体限制512M
Unicode程式库PHP Mbstring扩展
然后我的资料库目前为1m
我的drupal为6.16版的
谢谢
心中常存善解、包容、感思、知足、惜福(静思语录)
人人把心中的爱发挥出来,就能凝聚善的福业,形成善的循环。(静思语录)
Re: cron 执行失败
No news is good news!
如果是手动执行cron.php,之后出现空白页面是正常的,代表正常执行完成。
不然你可以检查report -> recent log entries里面的记载。
Re: cron 执行失败
我的cron.php有提示二周又二小时未corn。点了执行结果秀空白页面…
之前还可以的…后来主机商有将我的主机升级后…就变这样…所以想询问是不是还有什么设定上会变这样~~orz哀
心中常存善解、包容、感思、知足、惜福(静思语录)
人人把心中的爱发挥出来,就能凝聚善的福业,形成善的循环。(静思语录)
Re: cron 执行失败
如果你是点击report 里面的连结去run cron, 那就不是手动的了(ok, 也应该算半个手动)。我说的手动cron, 是直接输入yoursite.com/cron.php, 如果执行完页面空白, log里面也显示了执行时间,那就是ok。代表问题可能出在cron module, 而不是server的设定。
如果手动cron之后,log没有记载,那么可能是max_execution_time不够用。你也可以试试看supercron。
Re: cron 执行失败
今天也遇到这个问题,后来在Drupal官网有看到这个资讯:
删除资料库中variables这个资料表中cron_semaphore这个参数,提供需要的参考http://drupal.org/node/143519#comment-244463