diff options
author | Dries Buytaert <dries@buytaert.net> | 2000-12-10 15:44:23 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2000-12-10 15:44:23 +0000 |
commit | 1e993e9367e628c529a7864c1354ca40e39881ff (patch) | |
tree | 33ac33a76d55c6d6e15119179fda2f94bfabc847 | |
parent | fc8fa68b6f6a4b968f187cc621d9cc9fd585de28 (diff) | |
download | brdo-1e993e9367e628c529a7864c1354ca40e39881ff.tar.gz brdo-1e993e9367e628c529a7864c1354ca40e39881ff.tar.bz2 |
- added a new cron deamon as discussed earlier!
-rw-r--r-- | cron.php | 12 | ||||
-rw-r--r-- | includes/cron.inc | 24 |
2 files changed, 36 insertions, 0 deletions
diff --git a/cron.php b/cron.php new file mode 100644 index 000000000..ebde1b30b --- /dev/null +++ b/cron.php @@ -0,0 +1,12 @@ +<? + +include "includes/theme.inc"; +include "includes/cron.inc"; + +$result = db_query("SELECT * FROM cron"); + +while ($cron = db_fetch_object($result)) { + if (time() - $cron->timestamp > $cron->scheduled) cron_execute($cron); +} + +?> diff --git a/includes/cron.inc b/includes/cron.inc new file mode 100644 index 000000000..59ff0a07c --- /dev/null +++ b/includes/cron.inc @@ -0,0 +1,24 @@ +<? + +function cron_add($name, $help, $code, $scheduled, $message = "") { + if (empty($name) || empty($code) || empty($scheduled)) { + $message = "failed: information missing"; + } + else { + $result = db_query("INSERT INTO cron (name, help, code, scheduled) VALUES ('". check_input($name) ."', '". check_input($help) ."', '". check_code($code) ."', '". check_input($scheduled) ."')"); + } +} + +function cron_delete($id) { + $result = db_query("DELETE FROM cron WHERE id = $id"); +} + +function cron_execute($cron) { + eval($cron->code); + + db_query("UPDATE cron SET timestamp = '". time() ."' WHERE id = $cron->id"); + + watchdog("message", "cron: executed '$cron->name'"); +} + +?> |