Drupal Cron Hook - PullRequest
       9

Drupal Cron Hook

0 голосов
/ 14 февраля 2012

Я создаю модуль Drupal 6 для клиента и хочу выполнять некоторую часть кода каждые XYZ минуты.Я знаю, что могу реализовать cron_hook, но мой модуль не контролирует cron клиента.Мне нужно запустить мой код независимо от настройки cron.Есть идеи как подойти к этому?

1 Ответ

2 голосов
/ 14 февраля 2012

Drupal действительно не предлагает ничего, кроме функциональности hook_cron.

Тем не менее, вы можете определить обычный обратный вызов меню, который выполняет любой код aribitarary, который вы хотите запустить. Просто настройте задание вручную на вкладке cron вашего сервера, чтобы запускать его в любое время

<?
function example_menu() {

    $items = array();
    $items['example/cron'] = array(
        'title' => 'example Cron',
        'page callback' => 'example_callback',
        'type' => MENU_CALLBACK,
    );

}

function example_callback(){
      //optionally do some IP checking to make sure its not being fired by a remote request

      set_time_limit(0); //set it so your cron wont time out if it takes a long time to process ... be careful your cron doesnt run forever though

      watchdog('example', "Cron Started", array(), WATCHDOG_NOTICE);
      //execute custom code here
      for($i = 0; $i < 100; $i++){
         //do stuff
      }

      watchdog('example', "Cron Complete", array(), WATCHDOG_NOTICE);

    }

Как только вы это сделаете, просто установите задание cron, чтобы переходить по URL так часто, как вы хотите

X Y * * * curl http://examplesite.com/example/cron 
...