私は Elysia cron モジュールに付属しているcronapiを使用しており、ここに私のコードがあります:
function MYMODULE_cronapi($op, $job = NULL) {
$items['example_news_cron'] = array(
'description' => 'Send mail with news',
'rule' => '*/5 * * * *', // Every 5 minutes
'callback' => 'example_news_fetch'
);
return $items;
}
function example_news_fetch() {
// Do something here
}
cronは、adminセクション(Elysia cron構成)で手動で実行した場合にのみ機能しますが、特定の期間ごとに実行する必要があります。
いくつかの構成がない、またはシステム要件がありますか
「cronは、adminセクション(Elysia cron構成)で手動で実行した場合にのみ機能しますが、特定の期間ごとに実行する必要があります!」と言ったように、コードは正常に機能しています。
デフォルトでは、Drupalサイトにアクセスするとcronが実行され、cronが最後に実行されたのはいつかが評価されるため、所定の時間が経過するとcronが再度実行されますが、そのサイトにアクセスする必要があります。したがって、修正期間に実行することになっているタスクがある場合、Drupalサイトが誰かによってアクセスされるのを待つことはできません。代わりに、サーバーにcrontabを設定する必要があります。つまり、サーバーは、スケジュールされた時刻にcron.php
にpingします。
Linuxベースのシステムでcronタブを設定する方法 を確認するか、代替オプションとして、cronタブの設定中にdrushを使用できます( cron.html を参照)。