summaryrefslogtreecommitdiffstats
path: root/tcllib/modules/cron/cron.man
diff options
context:
space:
mode:
Diffstat (limited to 'tcllib/modules/cron/cron.man')
-rw-r--r--tcllib/modules/cron/cron.man78
1 files changed, 78 insertions, 0 deletions
diff --git a/tcllib/modules/cron/cron.man b/tcllib/modules/cron/cron.man
new file mode 100644
index 0000000..d3b63aa
--- /dev/null
+++ b/tcllib/modules/cron/cron.man
@@ -0,0 +1,78 @@
+[comment {-*- tcl -*- doctools manpage}]
+[vset PACKAGE_VERSION 0.1]
+[manpage_begin cron n [vset PACKAGE_VERSION]]
+[keywords {cron}]
+[keywords {odie}]
+[copyright {2015 Sean Woods <yoda@etoyoc.com>}]
+[moddesc {cron}]
+[titledesc {Tool for automating the period callback of commands}]
+[category System]
+[require Tcl 8.5]
+[require cron [opt [vset PACKAGE_VERSION]]]
+[description]
+[para]
+
+The [package cron] package provides a Pure-tcl set of tools to allow
+programs to schedule tasks to occur at regular intervals. Rather than
+force each task to issue it's own call to the event loop, the cron
+system mimics the cron utility in Unix: on task periodically checks to
+see if something is to be done, and issues all commands for a given
+time step at once.
+
+The cron package is intended to work in time scales greater than 1 second.
+
+[section Commands]
+[list_begin definitions]
+
+[call [cmd ::cron::at] [arg ?processname?] [arg timecode] [arg command]]
+
+This command registers a [arg command] to be called at the time specified by [arg timecode].
+If [arg timecode] is expressed as an integer, the timecode is assumed to be in unixtime. All
+other inputs will be interpreted by [cmd {clock scan}] and converted to unix time.
+This task can be modified by subsequent calls to
+this package's commands by referencing [arg processname]. If [arg processname] exists,
+it will be replaced.
+
+If [arg processname] is not given, one is generated and returned by the command.
+
+[example_begin]
+::cron::at start_coffee {Tomorrow at 9:00am} {remote::exec::coffeepot power on}
+::cron::at shutdown_coffee {Tomorrow at 12:00pm} {remote::exec::coffeepot power off}
+[example_end]
+
+[call [cmd ::cron::cancel] [arg processname]]
+
+This command unregisters the process [arg processname] and cancels any pending commands.
+Note: processname can be a process created by either [cmd ::cron::at] or [cmd ::cron::every].
+
+[example_begin]
+::cron::cancel check_mail
+[example_end]
+
+[call [cmd ::cron::every] [arg processname] [arg frequency] [arg command]]
+
+This command registers a [arg command] to be called at the interval of [arg frequency].
+[arg frequency] is given in seconds. This task can be modified by subsequent calls to
+this package's commands by referencing [arg processname]. If [arg processname] exists,
+it will be replaced.
+
+[example_begin]
+::cron::every check_mail 900 ::imap_client::check_mail
+::cron::every backup_db 3600 {::backup_procedure ::mydb}
+[example_end]
+
+[call [cmd ::cron::in] [arg ?processname?] [arg timecode] [arg command]]
+
+This command registers a [arg command] to be called after a delay of time specified by [arg timecode].
+[arg timecode] is expressed as an seconds.
+This task can be modified by subsequent calls to
+this package's commands by referencing [arg processname]. If [arg processname] exists,
+it will be replaced.
+
+If [arg processname] is not given, one is generated and returned by the command.
+
+[list_end]
+[para]
+[vset CATEGORY odie]
+[include ../doctools2base/include/feedback.inc]
+[manpage_end]