| 1 |
<?php |
<?php |
| 2 |
// $Id: cron.module,v 1.7 2009/06/15 10:43:17 denraf Exp $ |
// $Id: cron.module,v 1.8 2009/06/15 11:18:03 denraf Exp $ |
| 3 |
|
|
| 4 |
/** |
/** |
| 5 |
* @file |
* @file |
| 199 |
} |
} |
| 200 |
|
|
| 201 |
function cron_add_form_submit($form, $form_state) { |
function cron_add_form_submit($form, $form_state) { |
| 202 |
db_query("INSERT INTO {cron} (url, cron_key, description, checks, last_check, interval, count) VALUES ('%s', '%s', '%s', 1, '%d', '%d', '%d')", $form_state['values']['url'], $form_state['values']['cron_key'], $form_state['values']['description'], time(), $form_state['values']['interval'], $form_state['values']['interval']); |
db_query("INSERT INTO {cron} (url, cron_key, description, checks, last_check, intervals, count) VALUES ('%s', '%s', '%s', 1, '%d', '%d', '%d')", $form_state['values']['url'], $form_state['values']['cron_key'], $form_state['values']['description'], time(), $form_state['values']['interval'], $form_state['values']['interval']); |
| 203 |
drupal_goto('admin/settings/tools/cron'); |
drupal_goto('admin/settings/tools/cron'); |
| 204 |
} |
} |
| 205 |
|
|
| 206 |
function cron_edit_form($form_state, $sid = 0) { |
function cron_edit_form($form_state, $sid = 0) { |
| 207 |
$sql = db_query("SELECT url, cron_key, description, checks, errors, interval FROM {cron} WHERE sid = '%d'", $sid); |
$sql = db_query("SELECT url, cron_key, description, checks, errors, intervals FROM {cron} WHERE sid = '%d'", $sid); |
| 208 |
$row = db_fetch_object($sql); |
$row = db_fetch_object($sql); |
| 209 |
$form['sid'] = array( |
$form['sid'] = array( |
| 210 |
'#type' => 'hidden', |
'#type' => 'hidden', |
| 232 |
$form['interval'] = array( |
$form['interval'] = array( |
| 233 |
'#type' => 'textfield', |
'#type' => 'textfield', |
| 234 |
'#size' => 3, |
'#size' => 3, |
| 235 |
'#default_value' => $row->interval, |
'#default_value' => $row->intervals, |
| 236 |
); |
); |
| 237 |
$form['operations']['save'] = array( |
$form['operations']['save'] = array( |
| 238 |
'#type' => 'submit', |
'#type' => 'submit', |
| 293 |
} |
} |
| 294 |
|
|
| 295 |
function cron_edit_form_submit($form, $form_state) { |
function cron_edit_form_submit($form, $form_state) { |
| 296 |
db_query("UPDATE {cron} SET url = '%s', cron_key = '%s', description = '%s', checks = '%d', last_check = '%d', disabled = 'FALSE', interval = '%d', count = '%d' WHERE sid = '%d'", $form_state['values']['url'], $form_state['values']['cron_key'], $form_state['values']['description'], $form_state['values']['checks'] + 1, time(), $form_state['values']['sid'], $form_state['values']['interval'], $form_state['values']['interval']); |
db_query("UPDATE {cron} SET url = '%s', cron_key = '%s', description = '%s', checks = '%d', last_check = '%d', disabled = 'FALSE', intervals = '%d', count = '%d' WHERE sid = '%d'", $form_state['values']['url'], $form_state['values']['cron_key'], $form_state['values']['description'], $form_state['values']['checks'] + 1, time(), $form_state['values']['sid'], $form_state['values']['interval'], $form_state['values']['interval']); |
| 297 |
drupal_goto('admin/settings/tools/cron'); |
drupal_goto('admin/settings/tools/cron'); |
| 298 |
} |
} |
| 299 |
|
|
| 302 |
drupal_goto('admin/settings/tools/cron'); |
drupal_goto('admin/settings/tools/cron'); |
| 303 |
} |
} |
| 304 |
|
|
| 305 |
function cron_settings_form($form, $form_state) { |
function cron_settings_form() { |
| 306 |
|
|
| 307 |
$form['reset'] = array( |
$form['reset'] = array( |
| 308 |
'#type' => 'fieldset', |
'#type' => 'fieldset', |
| 317 |
'#value' => t('Reset'), |
'#value' => t('Reset'), |
| 318 |
'#submit' => 'cron_interval_reset' |
'#submit' => 'cron_interval_reset' |
| 319 |
); |
); |
|
|
|
| 320 |
$form['fault_level'] = array( |
$form['fault_level'] = array( |
| 321 |
'#type' => 'textfield', |
'#type' => 'textfield', |
| 322 |
'#size' => 3, |
'#size' => 3, |
| 323 |
|
'#title' => t('Fault level'), |
| 324 |
|
'#description' => t('Configure the fault level on which a site has to be disabled'), |
| 325 |
'#default_value' => variable_get('fault_level', 0) |
'#default_value' => variable_get('fault_level', 0) |
| 326 |
) |
); |
| 327 |
|
|
| 328 |
|
$form['#validate'] = array('cron_interval_validate'); |
| 329 |
return system_settings_form($form); |
return system_settings_form($form); |
| 330 |
} |
} |
| 331 |
|
|
| 332 |
function cron_interval_reset($form, $form_state) { |
/** |
| 333 |
variable_set('cron_interval_start', 0); |
* Validate callback. |
| 334 |
variable_set('cron_interval_end', 0); |
*/ |
| 335 |
|
function cron_interval_validate($form, &$form_state) { |
| 336 |
|
if ($form_state['values']['op'] == t('Reset')) { |
| 337 |
|
variable_set('cron_interval_start', 0); |
| 338 |
|
variable_set('cron_interval_end', 0); |
| 339 |
|
drupal_goto('admin/settings/tools/cron/settings'); |
| 340 |
|
} |
| 341 |
} |
} |
| 342 |
|
|
| 343 |
/** |
/** |
| 417 |
t('Site'), |
t('Site'), |
| 418 |
t('Cron key (Drupal 7)'), |
t('Cron key (Drupal 7)'), |
| 419 |
t('Description'), |
t('Description'), |
| 420 |
|
t('Interval'), |
| 421 |
t('Operations') |
t('Operations') |
| 422 |
); |
); |
| 423 |
|
|
| 426 |
drupal_render($form['url']), |
drupal_render($form['url']), |
| 427 |
drupal_render($form['cron_key']), |
drupal_render($form['cron_key']), |
| 428 |
drupal_render($form['description']), |
drupal_render($form['description']), |
| 429 |
|
drupal_render($form['interval']), |
| 430 |
drupal_render($form['operations']), |
drupal_render($form['operations']), |
| 431 |
); |
); |
| 432 |
} |
} |
| 485 |
} |
} |
| 486 |
} |
} |
| 487 |
|
|
| 488 |
$sql = db_query("SELECT sid, url, cron_key, checks, errors, last_check, last_error, interval, count FROM {cron} WHERE disabled = '%d'", FALSE); |
$sql = db_query("SELECT sid, url, cron_key, checks, errors, last_check, last_error, intervals, count FROM {cron} WHERE disabled = '%d'", FALSE); |
| 489 |
while ($row = db_fetch_object($sql)) { |
while ($row = db_fetch_object($sql)) { |
| 490 |
if ($row->count == 0) { |
if ($row->count == 0) { |
| 491 |
$checks = $row->checks + 1; |
$checks = $row->checks + 1; |
| 565 |
// when 2 last checks failed and 90% of all checks failed, disable this site |
// when 2 last checks failed and 90% of all checks failed, disable this site |
| 566 |
$disable = TRUE; |
$disable = TRUE; |
| 567 |
} |
} |
| 568 |
db_query("UPDATE {cron} SET checks = '%d', last_check = '%d', errors = '%d', last_error = '%d', disabled = '%d', interval = '%d', count = '%d' WHERE sid = '%d'", $checks, time(), $errors, $last_error, $disable, $row->interval, $row->interval, $row->sid); |
db_query("UPDATE {cron} SET checks = '%d', last_check = '%d', errors = '%d', last_error = '%d', disabled = '%d', count = '%d' WHERE sid = '%d'", $checks, time(), $errors, $last_error, $disable, $row->intervals, $row->sid); |
| 569 |
} |
} |
| 570 |
else { |
else { |
| 571 |
$row->count--; |
$row->count--; |