https://github.com/changkun/sched
⏳ a high performance reliable task scheduling package in Go.
https://github.com/changkun/sched
go golang high-performance persistence scheduler
Last synced: about 1 year ago
JSON representation
⏳ a high performance reliable task scheduling package in Go.
- Host: GitHub
- URL: https://github.com/changkun/sched
- Owner: changkun
- License: mit
- Created: 2018-06-30T11:54:55.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-02-16T10:09:02.000Z (over 6 years ago)
- Last Synced: 2025-04-01T08:11:40.841Z (about 1 year ago)
- Topics: go, golang, high-performance, persistence, scheduler
- Language: Go
- Homepage: https://github.com/changkun/sched
- Size: 3.31 MB
- Stars: 48
- Watchers: 7
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sched
[](https://godoc.org/github.com/changkun/sched) [](https://travis-ci.org/changkun/sched) [](https://goreportcard.com/report/github.com/changkun/sched) [](https://codecov.io/gh/changkun/sched) [](https://github.com/changkun/sched/releases)
`sched` is a high performance task scheduling library with future support.
## Usage
```go
// Init sched, with tasks should recovered when reboot
futures, err := sched.Init(
"redis://127.0.0.1:6379/1",
&ArbitraryTask1{},
&ArbitraryTask2{},
)
if err != nil {
panic(err)
}
// Retrieve task's future
for i := range futures {
fmt.Printf("%v", futures[i].Get())
}
// Setup tasks, use future.Get() to retrieve the future of task
future, err := sched.Submit(&ArbitraryTask{...})
if err != nil {
panic(err)
}
fmt.Printf("%v", future.Get())
// Launch a task, use future.Get() to retrieve the future of task
future, err := sched.Trigger(&ArbitraryTask{...})
if err != nil {
panic(err)
}
fmt.Printf("%v", future.Get())
// Pause sched
sched.Pause()
// Resume sched
sched.Resume()
// Wait sched schedule all tasks
sched.Wait()
// Stop sched gracefully
sched.Stop()
```
## Task Design
Learn more regarding task design, see [test examples](./tests).
## License
[MIT](./LICENSE) © [Changkun Ou](https://changkun.de)