You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
package timerqueue_test |
|
|
|
import ( |
|
"fmt" |
|
"time" |
|
|
|
"go-common/app/admin/main/up/util/timerqueue" |
|
) |
|
|
|
type event int |
|
|
|
func (e event) OnTimer(t time.Time) { |
|
fmt.Printf(" Event %d executed at %v\n", int(e), t) |
|
} |
|
|
|
// Schedule several events with a timerqueue, and dispatch |
|
// them by calling Advance. |
|
func ExampleQueue() { |
|
queue := timerqueue.New() |
|
|
|
// Schedule an event each day from Jan 1 to Jan 7, 2015. |
|
tm := time.Date(2015, 1, 1, 0, 0, 0, 0, time.UTC) |
|
for i := 1; i <= 7; i++ { |
|
queue.Schedule(event(i), tm) |
|
tm = tm.Add(24 * time.Hour) |
|
} |
|
|
|
fmt.Println("Advancing to Jan 4...") |
|
queue.Advance(time.Date(2015, 1, 4, 0, 0, 0, 0, time.UTC)) |
|
|
|
fmt.Println("Advancing to Jan 10...") |
|
queue.Advance(time.Date(2015, 1, 10, 0, 0, 0, 0, time.UTC)) |
|
|
|
// Output: |
|
// Advancing to Jan 4... |
|
// Event 1 executed at 2015-01-01 00:00:00 +0000 UTC |
|
// Event 2 executed at 2015-01-02 00:00:00 +0000 UTC |
|
// Event 3 executed at 2015-01-03 00:00:00 +0000 UTC |
|
// Event 4 executed at 2015-01-04 00:00:00 +0000 UTC |
|
// Advancing to Jan 10... |
|
// Event 5 executed at 2015-01-05 00:00:00 +0000 UTC |
|
// Event 6 executed at 2015-01-06 00:00:00 +0000 UTC |
|
// Event 7 executed at 2015-01-07 00:00:00 +0000 UTC |
|
}
|
|
|