Skip to content

🥊 A simple and zero-dependencies library to create and manage routines, schedule execution time, and control competition between other processes.

License

Notifications You must be signed in to change notification settings

isaqueveras/outis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A documentation for the Outis library
The outis library helps you create and manage routines,
schedule execution time, and control competition between other processes.

Sponsors GitHub go.mod Go version GitHub commit activity


How to use.

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()
}

Reporting issues

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.

Contributing

This project is open-source and accepts contributions. See the contribution guide for more information.

About

🥊 A simple and zero-dependencies library to create and manage routines, schedule execution time, and control competition between other processes.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages