Aller au contenu principal

Suivre les Tâches d'Envoi avec les Abonnements

send et les flux associés renvoient un ID de tâche et continuent de manière asynchrone.

Pour une expérience utilisateur en temps réel en production, privilégiez les abonnements au lieu de l'interrogation répétée (polling) de task.

Pour le schéma général des événements, voir Format de l'Événement d'Abonnement.

Flux et Catégorie

Les événements de tâche sont transmis sur :

  • subscribeGroupFeed

Ils utilisent :

  • category: "task"

Noms des Événements de Tâche

Les événements actuels du flux de travail de tâche incluent :

  • taskDocumentCreated
  • taskCompleted
  • taskStoppedByRecipientStopList
  • taskTrialCreditBlocked
  • taskCreditBlocked

Contenu de l'Événement de Tâche

Les charges utiles des tâches utilisent cette forme de base :

{
"version": "1.0",
"eventId": "evt...",
"timestamp": "2026-04-24T10:38:36.822Z",
"level": "INFO",
"event": "taskCompleted",
"category": "task",
"groupId": "grp...",
"userId": "usr...",
"requestId": null,
"batchId": "bch...",
"error": null,
"data": {
"id": "tsk...",
"code": "TSKPROCESSOK",
"documents": []
}
}

Opération d'Abonnement

subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}

Exemple JavaScript

const parseEnvelope = (payload) => {
const raw = payload?.data;
if (!raw) return null;
return typeof raw === 'string' ? JSON.parse(raw) : raw;
};

const handleGroupFeed = ({ data }) => {
const wrapper = data?.subscribeGroupFeed;
const event = parseEnvelope(wrapper);

if (event?.category !== 'task') return;

switch (event.event) {
case 'taskCompleted':
console.log('send task completed', event.data.id);
break;
case 'taskDocumentCreated':
console.log('document created inside task', event.data.documents);
break;
case 'taskCreditBlocked':
case 'taskTrialCreditBlocked':
case 'taskStoppedByRecipientStopList':
console.warn('task blocked', event.event, event.data.code);
break;
default:
console.log('task update', event.event, event.data);
}
};

Interrogation Répétée vs Abonnements

L'interrogation répétée de la requête task convient pour :

  • débuter
  • scripts simples
  • débogage

Les abonnements sont préférables lorsque vous souhaitez :

  • mises à jour immédiates de l'interface utilisateur
  • progression de l'envoi reflétée en direct dans un tableau de bord
  • notifications de flux de travail sans interrogation répétée