mirror of
https://github.com/langgenius/dify.git
synced 2026-07-20 09:38:32 +08:00
31 lines
1.0 KiB
Go
31 lines
1.0 KiB
Go
// shellctl-runner-exit persists a drained runner exit into the shellctl SQLite DB.
|
|
// It runs after the tmux output pipe reaches EOF and output.log is fully flushed.
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
runnerexit "github.com/langgenius/dify/dify-agent-runtime/internal/runner_exit"
|
|
)
|
|
|
|
func main() {
|
|
stateDir := flag.String("state-dir", "", "shellctl state directory")
|
|
jobID := flag.String("job-id", "", "job identifier")
|
|
exitCode := flag.Int("exit-code", 0, "runner process exit code")
|
|
endedAt := flag.String("ended-at", "", "ISO-8601 ended_at timestamp")
|
|
busyTimeoutMs := flag.Int("sqlite-busy-timeout-ms", 5000, "SQLite busy timeout in milliseconds")
|
|
flag.Parse()
|
|
|
|
if *stateDir == "" || *jobID == "" || *endedAt == "" {
|
|
fmt.Fprintf(os.Stderr, "shellctl-runner-exit: --state-dir, --job-id, and --ended-at are required\n")
|
|
os.Exit(1)
|
|
}
|
|
|
|
if err := runnerexit.RecordRunnerExit(*stateDir, *jobID, *exitCode, *endedAt, *busyTimeoutMs); err != nil {
|
|
fmt.Fprintf(os.Stderr, "shellctl-runner-exit: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|