worker/worker.go (package worker)
Source : sdks/go/worker/worker.go. Retour à l'index de la référence du SDK Go.
Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.
Modèle Job
Job est une unité de travail.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
ID | string | oui | Identifiant de la tâche, envoyé dans worker lors du battement de cœur par défaut. |
RunID | string | oui | RunID, s'il est renseigné, reçoit des battements de cœur sur POST /v1/runs/{id}/heartbeat. |
Payload | json.RawMessage | oui | Entrée JSON brute de la tâche, lue par le Handler. |
Attempt | int | oui | Numéro de tentative, à partir de 1 (1 par défaut). Comparé à retry_policy.max_attempts. |
Interface Source
Source d'un chart : exactement un parmi chart_path et oci.
Source.Ack
Ack(ctx context.Context, job *Job, result any) error
Ack signale qu'une tâche a réussi, avec le résultat du Handler.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ctx | context.Context | oui | Contexte de l'appel : annulation et échéance. | |
job | *Job | oui | Tâche réussie. | |
result | any | oui | Valeur renvoyée par le Handler. |
Retour : error. Erreur de l'appel (une erreur typée du SDK), nil en cas de succès.
Source.Fail
Fail(ctx context.Context, job *Job, cause error) error
Fail signale qu'une tâche a échoué, avec l'erreur du Handler.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ctx | context.Context | oui | Contexte de l'appel : annulation et échéance. | |
job | *Job | oui | Tâche en échec. | |
cause | error | oui | Erreur renvoyée par le Handler, ou l'erreur de panique. |
Retour : error. Erreur de l'appel (une erreur typée du SDK), nil en cas de succès.
Source.Next
Next(ctx context.Context) (*Job, _ error)
Next renvoie la tâche suivante, ou (nil, nil) quand aucune n'est disponible pour l'instant.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ctx | context.Context) (*Job | oui | Contexte de l'appel : annulation et échéance. | |
_ | error | oui | Contexte de la boucle du worker, annulé à l'arrêt. |
Alias de type Handler
Handler exécute une tâche ; son contexte est annulé par le coupe-circuit ou un arrêt forcé.
Définition : func(ctx context.Context, job *Job) (any, error).
Modèle Config
Config configure un Worker.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
Source | Source | oui | Source d'un chart : exactement un parmi chart_path et oci. |
Handler | Handler | oui | Handler exécute une tâche ; son contexte est annulé par le coupe-circuit ou un arrêt forcé. |
Concurrency | int | oui | 1 par défaut. |
Poll | time.Duration | oui | Attente quand la source est vide, 1 s par défaut. |
HeartbeatInterval | time.Duration | oui | Intervalle des battements de cœur pendant l'exécution d'une tâche, 10 s par défaut. |
Client | *eai.Client | non | Client envoie les battements de cœur par défaut (quand Heartbeat est nil) pour les tâches ayant un RunID. |
Heartbeat | func(ctx context.Context, job *Job) error | oui | Heartbeat remplace le battement de cœur par défaut. |
KillSwitch | func(ctx context.Context) (bool, error) | oui | KillSwitch est interrogé toutes les KillInterval (5 s par défaut) ; true arrête le worker immédiatement et annule les tâches en cours. |
KillInterval | time.Duration | oui | Intervalle d'interrogation de KillSwitch, 5 secondes par défaut. |
ShutdownTimeout | time.Duration | oui | ShutdownTimeout borne l'attente des tâches en cours après l'annulation du contexte (30 s par défaut), après quoi leurs contextes sont annulés. |
Logger | *slog.Logger | non | Logger des avertissements de la source, des battements de cœur et du coupe-circuit ; slog.Default() si nil. |
Modèle Stats
Stats regroupe les compteurs d'un Worker.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
Processed | int64 | oui | Tâches dont le Handler a réussi. |
Failed | int64 | oui | Tâches dont le Handler a renvoyé une erreur ou a paniqué. |
Heartbeats | int64 | oui | Battements de cœur envoyés sans erreur. |
Classe Worker
Worker exécute la boucle.
Worker.Kill
Kill()
Kill arrête le worker tout de suite : plus aucune nouvelle tâche, les tâches en cours sont annulées.
Cet élément ne prend aucun paramètre.
Worker.Run
Run(ctx context.Context) error
Run bloque jusqu'à l'annulation de ctx (arrêt progressif : les tâches en cours finissent dans le délai ShutdownTimeout, renvoie nil) ou jusqu'au déclenchement du coupe-circuit (renvoie ErrKilled).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ctx | context.Context | oui | Contexte de l'appel : annulation et échéance. |
Retour : error. Erreur de l'appel (une erreur typée du SDK), nil en cas de succès.
Erreurs levées : error.
Worker.Stats
Stats() Stats
Stats renvoie les compteurs.
Cet élément ne prend aucun paramètre.
Retour : Stats. Un Stats : les compteurs d'un Worker.
Classe ChanSource
ChanSource est une Source interne au processus alimentée par un canal ; les acquittements et les échecs sont signalés par des fonctions de rappel.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
Jobs | <-chan *Job | oui | Canal dans lequel les tâches sont lues, sans blocage. |
OnAck | func(job *Job, result any) | oui | Appelée par Ack avec la tâche et son résultat ; peut être nil. |
OnFail | func(job *Job, cause error) | oui | Appelée par Fail avec la tâche et l'erreur ; peut être nil. |
ChanSource.Ack
Ack(ctx context.Context, job *Job, result any) error
Ack signale un succès.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ctx | context.Context | oui | Contexte de l'appel : annulation et échéance. | |
job | *Job | oui | Tâche réussie, transmise à OnAck. | |
result | any | oui | Valeur renvoyée par le Handler, transmise à OnAck. |
Retour : error. Erreur de l'appel (une erreur typée du SDK), nil en cas de succès.
Erreurs levées : error.
ChanSource.Fail
Fail(ctx context.Context, job *Job, cause error) error
Fail signale un échec.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ctx | context.Context | oui | Contexte de l'appel : annulation et échéance. | |
job | *Job | oui | Tâche en échec, transmise à OnFail. | |
cause | error | oui | Erreur renvoyée par le Handler (ou une panique), transmise à OnFail. |
Retour : error. Erreur de l'appel (une erreur typée du SDK), nil en cas de succès.
Erreurs levées : error.
ChanSource.Next
Next(ctx context.Context) (*Job, error)
Next renvoie la prochaine tâche en attente, ou nil quand le canal est vide.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ctx | context.Context | oui | Contexte de l'appel : annulation et échéance. |
Retour : (*Job, error). Un Job : une unité de travail, nil quand aucune n'attend. L'error est toujours nil.
Erreurs levées : error.
Fonctions
New
New(cfg Config) (*Worker, error)
New valide la configuration.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cfg | Config | oui | Configuration du worker ; Source et Handler sont obligatoires, les durées nulles prennent leur valeur par défaut. |
Retour : (*Worker, error). Un Worker : il exécute la boucle. L'error est une erreur typée du SDK, nil en cas de succès.
Erreurs levées : error.
AgentKillSwitch
AgentKillSwitch(client *eai.Client, agentID string) func(ctx context.Context) (bool, error)
Lire un agent. Renvoie l'agent, le manifeste de sa version courante et runs, le nombre de ses runs par état. Demande la relation ReBAC viewer sur l'agent. 404 agent_not_found.
Route : /v1/agents/{agent_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
client | *eai.Client | oui | Client parent. | |
agentID | string | oui | Identifiant (UUID) ou nom de l'agent. |
Retour : func(ctx context.Context) (bool, error). Réponse JSON décodée de l'opération « Lire un agent ». L'error est une erreur typée du SDK, nil en cas de succès.
Erreurs levées : error, les erreurs typées du transport (Erreurs).
RunKillSwitch
RunKillSwitch(client *eai.Client, runID string) func(ctx context.Context) (bool, error)
Envoyer un heartbeat de run. Enregistre que le runtime est vivant et lui indique s'il doit continuer : action vaut continue, ou stop avec une reason (run_cancelled, run_terminal, run_suspended, agent_killed, agent_suspended). La réponse donne aussi stale_after_seconds. Un run terminé n'est pas mis à jour. Demande tenant_admin, developer ou agent. Audité seulement pour le premier heartbeat d'un run et quand le runtime reçoit l'ordre d'arrêter.
Route : /v1/runs/{run_id}/heartbeat (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
client | *eai.Client | oui | Client parent. | |
runID | string | oui | Identifiant (UUID) du run. |
Retour : func(ctx context.Context) (bool, error). Réponse JSON décodée de l'opération « Envoyer un heartbeat de run ». L'error est une erreur typée du SDK, nil en cas de succès.
Erreurs levées : error, les erreurs typées du transport (Erreurs).