您在這裡

cron 執行失敗

Oscar0410's 的頭像
Oscar0410 在 2008-12-04 (四) 13:36 發表

想請教一下.有人遇到過cron執行失敗的問題嗎?

小弟在今天執行cron時.竟然顯示執行失敗..整個傻眼= =.

我該從哪裡下手去找錯誤...因為沒顯示失敗的原因...只有在執行的那裡顯示失敗...

請指點一下.感謝

模块太多或者网站内容节点太多都会导致cron超时失败的, 只需要暂时关闭些消耗资源严重的模块(比如search index), cron就可以运行了,

aggregator 经常会有这个问题,暂时把它关闭掉,或者删除有问题的 feed 可能会有帮助。
-------------------------------------------
网站建设

可以多跑一點,這樣一次跑就不會消耗太多
你的站流量大?
--
from open mind to open source~

--
from open mind to open source~

修改 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;
}
}

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 '('. implode(', ', $output) .')';
}
}

系統總是顯示說cron正常運作;但這樣很難說是正常運作吧!
Drupal版本是6.13最新版的說。

tky

tky

tky您好:
我也遇到相同問題,想請問後來你是怎麼解決的呢? 謝謝

人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)

了解~
我是用poormanscron去執行的~
那我也用supercron來測試看看~ ^_^

人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)

按理說,tky的watchdog應該要像dennys的貼圖這樣,不過中間從hit search cron這個項目到下一個項目之間,一定會出現三行

Invalid argument supplied for foreach() 在檔案 /home/public_html/drupal/modules/taxonomy/taxonomy.module 裡的第 1214 行。

而且cron.php會一直不停地在load,執行非常久之後才有結果。

tky也覺得很奇怪說。

而且剛才發現,不只一個站有同樣的問題。
另一個也是從5.x升級到6.13的站(不同伺服器)也有這個問題。
不知為何,感覺這問題似曾相似?人老了,記不起來。

tky

tky

如果網站要跑cron.php然後呈空白頁面的話…
是因為記憶體不夠的關係嘛?想詢問大家一下

以下為我的系統設定…
MySQL 資料庫 5.0.45
PHP 5.2.12
PHP register globals 已關閉
PHP 記憶體限制 512M
Unicode 程式庫 PHP Mbstring 擴展

然後我的資料庫目前為1m

我的drupal為6.16版的

謝謝

心中常存善解、包容、感思、知足、惜福 (靜思語錄)

人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)

No news is good news!

如果是手動執行cron.php, 之後出現空白頁面是正常的, 代表正常執行完成。
不然你可以檢查 report -> recent log entries 裏面的記載。

我的cron.php有提示二週又二小時未corn。點了執行結果秀空白頁面…
之前還可以的…後來主機商有將我的主機升級後…就變這樣…所以想詢問是不是還有什麼設定上會變這樣~~orz哀

心中常存善解、包容、感思、知足、惜福 (靜思語錄)

人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)

如果你是點擊report 裏面的連結去run cron, 那就不是手動的了 (ok, 也應該算半個手動)。我說的手動cron, 是直接輸入yoursite.com/cron.php, 如果執行完頁面空白, log裏面也顯示了執行時間,那就是ok。 代表問題可能出在cron module, 而不是server的設定。

如果手動cron之後,log沒有記載,那麽可能是max_execution_time 不夠用。你也可以試試看supercron