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