defineTask
Rôle et comportement
Section intitulée « Rôle et comportement »Déclare un nœud de workflow à partir de sa clé, de ses dépendances after et de son callback perform, avec en option condition, retry, timeoutMs, cache, gate ou interaction. Elle n’alloue aucune sandbox, et rien ne s’exécute avant Workflow.start(). Lève une erreur pour une clé hors de [A-Za-z0-9][A-Za-z0-9._-]*, des réglages retry ou cache invalides, ou un cache combiné à une gate ou une interaction.
Exemple complet et règles détaillées.
Paramètres et propriétés
Section intitulée « Paramètres et propriétés »optionsRequisTaskOptions<T>Clé, dépendances et callback perform de la tâche, avec en option condition, retry, délai, cache, gate ou interaction.options.retryOptionnelRetry | undefinedPolitique de relance des tentatives échouées ; sans elle, la tâche s’exécute une fois. Une tentative relancée répète ses effets de bord.options.cacheOptionnelTaskCacheOptions | undefinedCache de résultat : une entrée trouvée restaure la valeur JSON sans perte enregistrée, sans tentative, usage ni effet de bord. En cas d’absence, un résultat qui n’est pas du JSON sans perte fait échouer la tâche. Refusé sur les gates, les interactions et les tâches qui renvoient un résultat de dispatch.options.gateOptionnelWorkflowGate | undefinedDéfinition persistée d’approbation ou pause ; son exécution exige un checkpoint et une décision de confiance correspondante.options.keyRequisstringClé unique dans le workflow, conforme à [A-Za-z0-9][A-Za-z0-9._-]*. Les enregistrements, événements et checkpoints identifient la tâche par elle.options.interactionOptionnelTaskInteraction | undefinedContrat optionnel de saisie humaine durable ; exige un checkpoint et ne peut pas être combiné avec une gate.options.performRequis(context: TaskContext) => T | Promise<T>S’exécute à chaque tentative et renvoie la sortie de la tâche ; avec un checkpoint, cette sortie doit être du JSON sans perte ou undefined. Arrêtez le travail quand context.signal est annulé.options.conditionOptionnel((context: TaskContext) => boolean | Promise<boolean>) | undefinedÉvaluée avec attempt 0 avant l’exécution de la tâche, y compris quand un start() ultérieur la reprend ; false termine la tâche en skipped, ce qui ignore aussi ses dépendantes.options.timeoutMsOptionnelnumber | undefinedDélai en millisecondes de chaque tentative, entier positif jusqu’à 2147483647. À l’expiration, context.signal est annulé et la tentative échoue ; retry peut la répéter.options.afterOptionnelreadonly Task<unknown>[] | undefinedTâches qui doivent être done avant que celle-ci démarre, aucune par défaut ; seules celles-ci se lisent avec context.value().