gogravity

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2024 License: MIT Imports: 11 Imported by: 0

README

GoGravity

An SDK for work with Apio Gravity in Golang.

Install
go get github.com/ApioIoT/gogravity
Base setup
gravity := gogravity.New("http://localhost:7000")

// Test connection
if err := gravity.Ping(context.Background()); err != nil {
  log.Fatal(err)
}

// Setup a topic (set true on the second parameter create a topic if not exists)
topic, err := gravity.Topic("project.resource.action", true)
if err != nil {
  log.Fatal(err)
}
Enqueue a job
type Payload struct {
  Message string `json:"message"`
}

if err := topic.Enqueue(Payload{ Message: "ciao" }); err != nil {
  log.Fatal(err)
}
Dequeue a job
job, err := topic.Dequeue()
if err != nil {
  t.Fatal(err)
}
Listen for a job
jobs, cancel, err := topic.Listen("* * * * * *", "Europe/Rome")
if err != nil {
  log.Fatal(err)
}
defer func() {
  if err := cancel(); err != nil {
    log.Fatal(err)
  }
}()

for job := range jobs {
  // ...
}
Complete a job
if err := gravity.Complete(job, nil); err != nil {
  log.Fatal(err)
} 
Fail a job
if err := gravity.Fail(job, nil); err != nil {
  log.Fatal(err)
}
Return a job
if err := gravity.Return(job); err != nil {
  log.Fatal(err)
} 
Add a schedule
if err := topic.AddSchedule("*/5 * * * * *", "Europe/Rome", true, false, 0); err != nil {
  t.Fatal(err)
}

Documentation

Index

Constants

View Source
const (
	QUEUED      = "queued"
	IN_PROGRESS = "in_progress"
	COMPLETED   = "completed"
	FAILED      = "failed"
	SKIPPED     = "skipped"
)

Job Status

View Source
const JOBS_BUFFER_SIZE = 100

Variables

This section is empty.

Functions

func New

func New(url string) gravity

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL