web-dev-qa-db-ja.com

cronタスクのリストを取得するにはどうすればよいですか?

Drupal 6のnoobの質問。 Drupal 6管理者からcronタスクのリストを取得する方法はありますか?私はサイトのテーマです。元の開発者はもういません。誰もが遅いことと500.shtmlエラーに不満を持っています。ログを調べたところ、これらは1時間ごとに実行されるcronタスクに最も関連していることがわかりましたが、それらのジョブが何であるかはわかりません。リストを取得したら、Drupal内から不要なタスクを無効にする方法もあります。 ?

クライアントマシンでWindowsを実行しています。 DRUSHを持っていません。

前もって感謝します

5
jchwebdev

Elysia Cronがインストールされておらず、純粋なデバッグの観点から、どのモジュールのcronが実行されているか、および実行にかかる時間を確認する必要がある場合は、[〜# 〜] temporarily [〜#〜] _includes/common.inc_のdrupal_cron_run()関数を次のように編集します...

_// Iterate through the modules calling their cron handlers (if any):
// module_invoke_all('cron'); // watchdog how long each hook takes now...

$details='';
foreach (module_implements('cron') as $module) {
  $start=microtime(TRUE);
  $function = $module . '_cron';
  $function();
  $finish=microtime(TRUE);
  $duration=$finish - $start;
  $details.='<pre>' . $module . ': ' . $duration . ' seconds</pre>';
}

// Record cron time
variable_set('cron_last', time());
watchdog('cron', 'Cron run completed.' . $details, array(), WATCHDOG_NOTICE); // . in $details here :)
_

たとえば、module_invoke_all()をコメント化し、代わりにmodule_implements()を介してループし、個々のcronの実行にかかった時間をログに記録します。

3
Jimajamma

または単純な使用

drush ev 'var_dump(module_implements("cron"))'

存在するcronジョブをリストします。

8
Figaro