package main import ( "context" "encoding/json" "flag" "fmt" "os" "time" "git.cin.su/m/Assistant/adapters/postgres" "git.cin.su/m/Assistant/contracts/work" "git.cin.su/m/Assistant/modules/work/application" ) func main() { workerID := flag.String("worker-id", "agent-worker-1", "durable worker identity") staleAfter := flag.Duration("stale-after", 10*time.Minute, "age after which a claimed item is recovered") leaseTTL := flag.Duration("lease-ttl", 15*time.Minute, "dry-run lease duration") flag.Parse() repository, err := postgres.OpenWork(context.Background(), postgres.ContinuityConfig{Host: os.Getenv("POSTGRES_HOST"), Port: os.Getenv("POSTGRES_PORT"), Database: os.Getenv("POSTGRES_DATABASE"), User: os.Getenv("WORK_POSTGRES_USER"), Password: os.Getenv("WORK_POSTGRES_PASSWORD")}) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } defer repository.Close() result, err := application.ExecuteWorkerCycle(context.Background(), repository, *workerID, work.AgentFencingToken(1), time.Now().UTC(), *staleAfter, *leaseTTL) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } if err := json.NewEncoder(os.Stdout).Encode(result); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } }