Get started with Schedo.dev using Go
go get -u github.com/useschedo/golang-sdk
import ( "github.com/useschedo/golang-sdk" "github.com/useschedo/golang-sdk/option" ) client := schedo.NewClient( option.WithAPIKey("your_api_key"), // defaults to os.LookupEnv("SCHEDO_API_KEY") )
package main import ( "context" "fmt" schedo "github.com/useschedo/golang" ) func main() { client := schedo.NewClient( option.WithAPIKey("your_api_key"), ) // Define a new job err := client.DefineJob( "example_job", "* * * * *", // Run every minute func(ctx *schedo.JobExecutionContext) (string, error) { fmt.Println("Executing job...") return "Job completed successfully", nil }, schedo.WithTimeout(30*time.Second), // Optional: 30 second timeout schedo.WithMetadata(map[string]any{"category": "reports"}), // Optional: adds metadata schedo.WithBlocking(true), // Optional: makes job execution blocking ) if err != nil { fmt.Printf("Failed to define job: %v\n", err) return } // Start listening for job execution events sdk.Start() }
func(ctx *schedo.JobExecutionContext) (string, error) { fmt.Println("Execution ID: ", ctx.ExecutionID) return "Job completed successfully", nil }
if err != nil { log.Printf("Failed to create job: %v", err) return }