summaryrefslogtreecommitdiff
path: root/modules/cron.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/cron.module')
-rw-r--r--modules/cron.module13
1 files changed, 12 insertions, 1 deletions
diff --git a/modules/cron.module b/modules/cron.module
index 54d55c41b..cb3bbb1fa 100644
--- a/modules/cron.module
+++ b/modules/cron.module
@@ -17,6 +17,13 @@ function cron_save($edit) {
}
}
+function cron_execute($name) {
+ global $repository;
+ watchdog("message", "cron: executed '". $name ."_cron()'");
+ $repository[$name]["cron"]();
+ db_query("UPDATE crons SET timestamp = ". time() ." WHERE module = '$name'");
+}
+
function cron_display() {
$intervals = array(300, 900, 1800, 3600, 7200, 10800, 21600, 43200, 86400, 172800, 259200, 604800, 1209600, 2419200);
@@ -29,7 +36,7 @@ function cron_display() {
$output .= " <TR><TH>module</TH><TH>period</TH><TH>last execution</TH><TH>operations</TH></TR>\n";
while ($cron = db_fetch_object($result)) {
foreach ($intervals as $value) $period .= "<OPTION VALUE=\"$value\"". (($cron->scheduled == $value) ? " SELECTED" : "") .">every ". format_interval($value) ."</OPTION>\n";
- $output .= " <TR><TD>". check_output($cron->module) ."</TD><TD><SELECT NAME=\"edit[$cron->module]\">$period</SELECT></TD><TD>". format_interval(time() - $cron->timestamp) ." ago</TD><TD ALIGN=\"center\"><A HREF=\"cron.php\">execute</A></TD></TR>\n";
+ $output .= " <TR><TD>". check_output($cron->module) ."</TD><TD><SELECT NAME=\"edit[$cron->module]\">$period</SELECT></TD><TD ALIGN=\"center\">". ($cron->timestamp ? format_interval(time() - $cron->timestamp) ." ago" : "never" )."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?mod=cron&op=execute&name=$cron->module\">execute</A></TD></TR>\n";
unset($period);
}
$output .= "</TABLE>\n";
@@ -47,6 +54,10 @@ function cron_admin() {
case "help":
cron_help();
break;
+ case "execute":
+ cron_execute($name);
+ cron_display();
+ break;
case "Save crons":
cron_save($edit);
// fall through