Drupal Cron Hook

时间:2012-02-13 22:41:18

标签: php drupal cron drupal-modules

我正在为客户端构建Drupal 6模块,我希望每XYZ分钟执行一部分代码。我知道我可以实现cron_hook,但我的模块无法控制客户端的cron。无论cron设置如何,我都需要运行我的代码。关于如何处理这个的任何想法?

1 个答案:

答案 0 :(得分:2)

Drupal并没有真正提供hook_cron功能之外的任何东西。

但是,您可以做的是定义一个正常的菜单回调,执行您想要运行的任何aribitarary代码。只需在服务器的cron-tab中手动设置作业,即可随时触发

<?
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作业,然后经常打你的网址

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