Explorar o código

Write helpful readme

Rob Figueiredo %!s(int64=13) %!d(string=hai) anos
pai
achega
04ae887f17
Modificáronse 1 ficheiros con 90 adicións e 0 borrados
  1. 90 0
      README.md

+ 90 - 0
README.md

@@ -3,3 +3,93 @@ cron
 
 A cron library for Go.
 
+## Usage
+
+Callers may register Funcs to be invoked on a given schedule.  Cron will run
+them in their own goroutines.
+
+```go
+c := new(Cron)
+c.Add("0 5 * * * *", func() { fmt.Println("Every 5 minutes") })
+c.Add("@hourly", func() { fmt.Println("Every hour") })
+go c.Run()  // Scheduler blocks until stopped, so run it in its own goroutine.
+..
+// Funcs are invoked in their own goroutine, asynchronously.
+..
+c.Stop()  // Stop the scheduler (does not stop any jobs already running).
+```
+
+
+## CRON Expression
+
+This section describes the specific format accepted by this cron.  Some snippets
+are taken from [the wikipedia article](http://en.wikipedia.org/wiki/Cron).
+
+### Format
+
+A cron expression represents a set of times, using 6 space-separated fields.
+
+Field name | Mandatory? | Allowed values | Allowed special characters
+---------- | ---------- | -------------- | --------------------------
+Seconds | Yes 	| 0-59 | * / , -
+Minutes | Yes 	| 0-59 | * / , -
+Hours 	| Yes 	| 0-23 | * / , -
+Day of month | Yes | 1-31 | * / , - ?
+Month 	| Yes 	| 1-12 or JAN-DEC | * / , -
+Day of week | Yes | 0-6 or SUN-SAT | * / , - ?
+
+Note: Month and Day-of-week field values are case insensitive.  "SUN", "Sun",
+and "sun" are equally accepted.
+
+### Special Characters
+
+#### Asterisk ( * )
+
+The asterisk indicates that the cron expression will match for all values of the
+field; e.g., using an asterisk in the 5th field (month) would indicate every
+month.
+
+#### Slash ( / )
+
+Slashes are used to describe increments of ranges. For example 3-59/15 in the
+1st field (minutes) would indicate the 3rd minute of the hour and every 15
+minutes thereafter. The form "*/..." is equivalent to the form "first-last/...",
+that is, an increment over the largest possible range of the field.  The form
+"N/..." is accepted as meaning "N-MAX/...", that is, starting at N, use the
+increment until the end of that specific range.  It does not wrap around.
+
+#### Comma ( , )
+
+Commas are used to separate items of a list. For example, using "MON,WED,FRI" in
+the 5th field (day of week) would mean Mondays, Wednesdays and Fridays.
+
+#### Hyphen ( - )
+
+Hyphens are used to define ranges. For example, 9-17 would indicate every
+hour between 9am and 5pm inclusive.
+
+#### Question mark ( ? )
+
+Question mark may be used instead of '*' for leaving either day-of-month or
+day-of-week blank.
+
+### Predefined schedules
+
+You may use one of several pre-defined schedules in place of a cron expression.
+
+Entry | Description | Equivalent To
+----- | ----------- | -------------
+@yearly (or @annually) | Run once a year, midnight, Jan. 1st | <code>0 0 0 1 1 *</code>
+@monthly | Run once a month, midnight, first of month | <code>0 0 0 1 * *</code>
+@weekly | Run once a week, midnight on Sunday | <code>0 0 0 * * 0</code>
+@daily (or @midnight) | Run once a day, midnight | <code>0 0 0 * * *</code>
+@hourly | Run once an hour, beginning of hour | <code>0 0 * * * *</code>
+
+## Time zones
+
+All interpretation and scheduling is done in the machine's local time zone (as
+provided by the [Go time package](http://www.golang.org/pkg/time)).
+
+Be aware that jobs scheduled during daylight-savings transitions will not be
+run!
+