Documentation
Documentation/Integrations

Files

Comment les jobs et workers externes produisent, reclament, terminent et echouent des unites de travail.

fileselementsworkershappy path
Voir le Markdown
Sur cette page

Les files permettent aux jobs et workers de coordonner des unites de travail dans un projet. Elles sont utiles quand une automatisation navigateur doit produire ou consommer des taches, pas seulement reussir ou echouer un test unique.

Forme d'une file

Un element de file a une reference, un statut, une priorite, des tags optionnels et un data JSON arbitraire. Les statuts courants sont new, in progress, completed, failed, abandoned ou retryable selon l'endpoint utilise.

Les elements sont volontairement generiques. Vous decidez si data represente une facture, un compte de test, une URL a crawler, une ligne d'import ou un autre objet metier.

Job producteur

Un script Playwright peut produire des elements en appelant l'API de file. Le producteur happy-path lent est un bon modele : resoudre l'URL backend, lire les variables projet de file, puis poster des elements avec un data structure.

const PROJECT_ID = requiredEnv('HAPPY_PATH_QUEUE_PROJECT_ID');
const QUEUE_ID = requiredEnv('HAPPY_PATH_QUEUE_ID');
const API_KEY = requiredEnv('HAPPY_PATH_QUEUE_API_KEY');
 
await api(backendUrl, API_KEY, 'POST', `/api/queues/${QUEUE_ID}/items`, {
  reference: `slow-demo-${Date.now()}`,
  priority: 10,
  tags: ['slow-demo'],
  data: { kind: 'slow-demo-item' },
});

Job ou worker consommateur

Les consommateurs reclament du travail avec l'endpoint next-item, traitent l'element retourne, puis le terminent ou l'echouent.

const claimed = await api<QueueItem[] | undefined>(
  backendUrl,
  API_KEY,
  'POST',
  `/api/queues/${QUEUE_ID}/next`,
  { worker_id: 'slow-queue-consumer' },
  true
);

Si aucun element n'est disponible, les consommateurs doivent sortir proprement plutot que faire echouer toute l'execution.

Scopes de cle API

Les workers de file ont souvent besoin de :

  • queues:read pour inspecter l'etat de la file.
  • queues:write pour creer des elements.
  • queues:execute pour reclamer, terminer, echouer, abandonner ou retenter du travail.
  • variables:use si le script lit des variables projet.

Conseils operationnels

Utilisez des references stables quand la detection de doublons compte. Utilisez la priorite pour controler l'ordre. Placez le payload metier dans data, pas dans les tags. Gardez les tags courts et utiles au filtrage ou au debug.

Pour les demos longues de file, definissez des timeouts Playwright explicites et loggez chaque reference d'element produit ou consomme.