From 9b5a1dd6106d637f8cd32e862b45187569ecb49e Mon Sep 17 00:00:00 2001 From: Dipesh Dulal Date: Sat, 16 Jan 2021 11:57:13 +0545 Subject: [PATCH] doc: update basic run-down with output --- README.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4655147..f50c3cb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,32 @@ -#### Database Based Event Scheduling +### Database Based Event Scheduling -Example that demonstrates super basic database based event scheduling. \ No newline at end of file +Example that demonstrates super basic database based event scheduling. + + +#### To run this example; +- Copy `.env.example` to `.env` and update postgres database dsn. +- Run `go run .` + + +**Basically,** + - When we want to schedule a job, we add to database +```go +scheduler.Schedule("SendEmail", "mail: nilkantha.dipesh@gmail.com", time.Now().Add(1*time.Minute)) +``` + +- Another go routine is always looking for jobs to execute (that has time expired) in the given interval. +```go +scheduler.CheckEventsInInterval(ctx, time.Minute) +``` + +**Output looks like;** +``` +2021/01/16 11:45:57 💾 Seeding database with table... +2021/01/16 11:45:57 🚀 Scheduling event SendEmail to run at 2021-01-16 11:46:57.177316418 +0545 +0545 m=+60.007979630 +2021/01/16 11:45:57 🚀 Scheduling event PayBills to run at 2021-01-16 11:50:57.180342726 +0545 +0545 m=+300.011005907 +2021/01/16 11:46:57 ⏰ Ticks Received... +2021/01/16 11:46:57 📨 Sending email with data: mail: nilkantha.dipesh@gmail.com +2021/01/16 11:47:57 ⏰ Ticks Received... +^C2021/01/16 11:48:00 +❌ Interrupt received closing... +``` \ No newline at end of file