The hook_cron_alter(&$hooks) allows you to change the cron hooks defined by hook_cron() and hook_cronapi().

### Example

Change default rules for the Node modules cron hook and hi-jack system cron:

    function hook_cron_alter(&$hooks) {
      $hooks['node_cron']['settings']['rules'] = array('0 * * * *');
      $hooks['system_cron']['module'] = 'mymodule';
      $hooks['system_cron']['callback'] = 'mymodule_new_system_cron';
      $hooks['system_cron']['file'] = drupal_get_path('module', 'mymodule') . '/mymodule.cron.inc';
    }

Example of the Node modules cron hook data:

    (
        [unsafe] =>
        [description] => Default cron handler
        [module] => node
        [configure] =>
        [settings] => Array
            (
                [enabled] => 1
                [rules] => Array
                    (
                        [0] => * * * * *
                    )

                [catch_up] => 300
            )

        [function] => node_cron
        [callback] => node_cron
    )

### Description of data structure

Name | Description
--- | ---
unsafe | If true, then the cron hook is considered unsafe, meaning that Ultimate Cron will not execute it. This value is set by Ultimate Cron when determining which hooks are unsafe. A hook is considered unsafe, if the function resides in a module with a weight lower than Ultimate Cron.
description | The description of the cron hook, usally defined in hook_cronapi(). The core modules description are added through a hook_cron_alter() in Ultimate Cron.
module | Name of the module in which the cron hook lives
configure | Link to module settings page
settings | Array with settings data, contains enabled, rules and catch_up by default, provided by Ultimate Cron
function | Name of function for the cron hook. Note: This is unsafe to change
callback | Name of callback to use when executing cron. This is set to the cron hooks function by default
file | Path to file (including filename) where callback is defined.