A documentation for the Outis library
The outis library helps you create and manage routines,
schedule execution time, and control competition between other processes.
package main
import (
"time"
"github.com/isaqueveras/outis"
)
func main() {
// Initialize Outis to be able to add routines
watch := outis.Watcher("35d3965c8783", "v1/example",
outis.WithLogger(nil), // Option to implement logs interface
outis.WithOutisInterface(nil), // Option to implement outis interface
)
watch.Go(
// Routine identifier to perform concurrency control
outis.WithID("8cf7e174fb4f"),
outis.WithName("Here is the name of my routine"),
outis.WithDesc("Here is the description of my routine"),
// It will run every 10 second
outis.WithInterval(time.Second * 10),
// It will run from 12pm to 4pm.
// by default, there are no time restrictions.
outis.WithHours(12, 16),
// Time when routine information will be updated
outis.WithLoadInterval(time.Second * 30),
// Here the script function that will be executed will be passed
outis.WithScript(func(ctx *outis.Context) {
ctx.Info("this is an information message")
ctx.Error("error: %v", errors.New("this is an error message"))
ctx.Metric("client_ids", []int64{234234})
ctx.Metric("notification", outis.Metric{
"client_id": 234234,
"message": "Hi, we are notifying you.",
"fcm": "3p2okrmionfiun2uni3nfin2i3f",
})
ctx.Debug("Hello")
}),
)
// Method that maintains routine in the process
watch.Wait()
}
The issue tracker for this project is located here.
Please report any issues with a sufficient description of the bug or feature request. Ideally, bug reports should be accompanied by a minimal reproduction of the issue. Bug reports must specify the version.
This project is open-source and accepts contributions. See the contribution guide for more information.