2

I am maintaining a site on drupal 6. I have installed a birthday module which can send mails to users on their bday. But it doesnt do so. None of the other cron related tasks are done, though cron runs daily, and I do get a notification on mail . I tried to install a new module called ultimate cron (6.x-1.7), this could solve my problem earlier when I last installed it. But on re-installation this also doesnt work. None of the triggered rules that should be fired on cron run are fired.

On site config -> cron it lists all the processes, but they are in starting state. And on background process page , it shows first task with 0 progress n none other are being processed. I have tried to install latest version of ultimate cron modules, but that gives some error saying "Unknown field: start stamp". Please help me with this.

3 Answers 3

0

For the latest version of Ultimate Cron, you also need the latest versions of Background Process and Progress. The versions might not match, or the database schema may not have been updated properly. Try completely uninstalling Ultimate Cron, Background Process and Progress, and then re-install them.

0

I'd say rtfm (that's f for 'friendly') for the birthday module. It clearly wants a CCK field which doesn't exist. Reconfigure, try again.

0

I've used a temporary patch to time the duration of each module's cron run. It helps a lot to debug cron issues.

I posted a patch for D8/D7 here:

http://drupal.org/node/1143082

A code snippet for manual D6 patching can be found here:

http://drupal.org/node/23714#comment-2633550

i.e D6 common.inc drupal_cron_run

// Iterate through the modules calling their cron handlers (if any):
$cron_timer = variable_get('cron_timer', '1'); // can add to settings form, defaults to on
if ($cron_timer) {
  // start timer for cron total
  timer_start('cron');
  foreach (module_implements('cron') as $module) {
    watchdog('cron', t('Starting cron for @module', array('@module' => $module)));
    $function = $module .'_cron';
    // start timer for this module, using module cron function name as id
    timer_start($function);
    // call cron hook
    $function();
    $timer = timer_stop($function);
    // get total in seconds
    $total = round($timer['time']/1000, 2);
    watchdog('cron', t('Cron time elapsed for @module is @secs seconds.'), array('@module' => $module, '@secs' => $total) );
  }
  $cron_timer = timer_stop('cron');
  $total = round($cron_timer['time']/1000, 2);
  watchdog('cron', t('Cron time total was @secs seconds.'), array('@secs' => $total) );
}else{
  // just run cron
  module_invoke_all('cron');
}

HTH

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.