Aller au contenu principal

worker/worker.go (package worker)

Source : sdks/go/worker/worker.go. Retour à l'index de la référence du SDK Go.

remarque

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 :

NomTypeRequisDescription
IDstringouiIdentifiant de la tâche, envoyé dans worker lors du battement de cœur par défaut.
RunIDstringouiRunID, s'il est renseigné, reçoit des battements de cœur sur POST /v1/runs/{id}/heartbeat.
Payloadjson.RawMessageouiEntrée JSON brute de la tâche, lue par le Handler.
AttemptintouiNumé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.

NomTypeDéfautRequisDescription
ctxcontext.ContextouiContexte de l'appel : annulation et échéance.
job*JobouiTâche réussie.
resultanyouiValeur 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.

NomTypeDéfautRequisDescription
ctxcontext.ContextouiContexte de l'appel : annulation et échéance.
job*JobouiTâche en échec.
causeerrorouiErreur 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.

NomTypeDéfautRequisDescription
ctxcontext.Context) (*JobouiContexte de l'appel : annulation et échéance.
_errorouiContexte 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 :

NomTypeRequisDescription
SourceSourceouiSource d'un chart : exactement un parmi chart_path et oci.
HandlerHandlerouiHandler exécute une tâche ; son contexte est annulé par le coupe-circuit ou un arrêt forcé.
Concurrencyintoui1 par défaut.
Polltime.DurationouiAttente quand la source est vide, 1 s par défaut.
HeartbeatIntervaltime.DurationouiIntervalle des battements de cœur pendant l'exécution d'une tâche, 10 s par défaut.
Client*eai.ClientnonClient envoie les battements de cœur par défaut (quand Heartbeat est nil) pour les tâches ayant un RunID.
Heartbeatfunc(ctx context.Context, job *Job) errorouiHeartbeat remplace le battement de cœur par défaut.
KillSwitchfunc(ctx context.Context) (bool, error)ouiKillSwitch est interrogé toutes les KillInterval (5 s par défaut) ; true arrête le worker immédiatement et annule les tâches en cours.
KillIntervaltime.DurationouiIntervalle d'interrogation de KillSwitch, 5 secondes par défaut.
ShutdownTimeouttime.DurationouiShutdownTimeout 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.LoggernonLogger 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 :

NomTypeRequisDescription
Processedint64ouiTâches dont le Handler a réussi.
Failedint64ouiTâches dont le Handler a renvoyé une erreur ou a paniqué.
Heartbeatsint64ouiBattements 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).

NomTypeDéfautRequisDescription
ctxcontext.ContextouiContexte 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 :

NomTypeRequisDescription
Jobs<-chan *JobouiCanal dans lequel les tâches sont lues, sans blocage.
OnAckfunc(job *Job, result any)ouiAppelée par Ack avec la tâche et son résultat ; peut être nil.
OnFailfunc(job *Job, cause error)ouiAppelé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.

NomTypeDéfautRequisDescription
ctxcontext.ContextouiContexte de l'appel : annulation et échéance.
job*JobouiTâche réussie, transmise à OnAck.
resultanyouiValeur 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.

NomTypeDéfautRequisDescription
ctxcontext.ContextouiContexte de l'appel : annulation et échéance.
job*JobouiTâche en échec, transmise à OnFail.
causeerrorouiErreur 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.

NomTypeDéfautRequisDescription
ctxcontext.ContextouiContexte 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.

NomTypeDéfautRequisDescription
cfgConfigouiConfiguration 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).

NomTypeDéfautRequisDescription
client*eai.ClientouiClient parent.
agentIDstringouiIdentifiant (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).

NomTypeDéfautRequisDescription
client*eai.ClientouiClient parent.
runIDstringouiIdentifiant (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).