Files d’attente
En quelques secondes seulement, des clients peuvent submerger nos systèmes de requêtes valides de traitement de fichiers à grande échelle. Pour gérer efficacement ces pics et garantir un service fluide à tous les clients, nous avons mis en place des mécanismes de files d’attente.
Comment cela fonctionne-t-il ?
- Live Queue : les téléversements directs de fichiers placent les Jobs d’encodage dans la Live Queue pour un traitement immédiat ; celle-ci fait office de voie rapide. Les Jobs en direct sont prioritaires sur tous les autres Jobs. La Live Queue est partagée entre tous les clients.
- Batch Queue : la Batch Queue est destinée aux Jobs plus volumineux qui ne nécessitent pas de traitement
en temps réel. La classification automatique en lot dépend de l’importateur et de ses règles d’importation en masse,
et pas simplement du nombre total de fichiers dans une Assembly. Pour choisir explicitement la
Batch Queue, définissez
"queue": "batch"sur le Step. Les Jobs par lots éligibles s’exécutent avec une priorité inférieure en utilisant la capacité disponible des workers. Ils peuvent s’exécuter alors que des Jobs en direct restent en file d’attente, si ces Jobs en direct ne peuvent pas utiliser cette capacité. La Batch Queue est également partagée entre tous les clients. - Basculement automatique : si trop de Jobs en direct sont envoyés et que vous dépassez le nombre d’emplacements prioritaires de Jobs de votre formule d’abonnement, les Jobs basculeront progressivement vers la file d’attente de secours afin de ne pas affecter les performances en direct des autres clients. Ils seront renvoyés vers la Live Queue dès que certains de vos Jobs en direct seront terminés, libérant ainsi des emplacements prioritaires de Jobs de votre Workspace.
- File d’attente de secours : de même, si trop de Jobs par lots sont envoyés, ils basculeront également vers une file d’attente de secours, puis seront remis dans la Batch Queue partagée dès que certains de vos Jobs par lots seront terminés, libérant ainsi des emplacements de Jobs par lots de votre Workspace.
Combien d’emplacements les Jobs consomment-ils ?
Le nombre d’emplacements requis varie selon le type de Job.
Par exemple, un Job /video/encode occupe 60 emplacements, tandis qu’un Job /image/resize en utilise 5.
Vous trouverez la liste de tous les Robots et de leurs besoins en emplacements dans l’entrée de la FAQ sur les emplacements prioritaires de Jobs.
Combien de Jobs puis-je traiter en parallèle ?
Chaque formule d’abonnement inclut une limite d’emplacements de Jobs en direct et d’emplacements de Jobs par lots par région. Par exemple, si votre limite d’emplacements prioritaires de Jobs est de 120, vous pouvez exécuter soit 24 redimensionnements d’images simultanés (5 emplacements chacun), soit 2 encodages vidéo simultanés avant que les Jobs ne commencent à basculer vers la file d’attente de secours. De même, si vous disposez de 360 emplacements de Jobs par lots, dès que plus de 6 Jobs vidéo sont en file dans la Batch Queue, les Jobs suivants sont placés dans la file d’attente de secours.
Les limites d’emplacements prioritaires de Jobs et d’emplacements de Jobs par lots de votre formule d’abonnement s’appliquent par région.
Comment éviter une dégradation des performances ?
-
Obtenez davantage d’emplacements prioritaires de Jobs et d’emplacements de Jobs par lots, ce qui augmente le débit. Contactez-nous pour obtenir des valeurs personnalisées.
-
Définissez
waitForEncodingsurfalse(disponible par exemple dans l’intégration Uppy). Le traitement devient alors asynchrone : des temps d’attente de deux minutes ne bloqueront pas l’expérience de l’utilisateur final. Lorsque les fichiers sont prêts, nous envoyons une requête ànotify_urlet vous prévenez votre utilisateur. Cette approche offre la meilleure expérience utilisateur et la meilleure fiabilité, et vous permet d’activer les Assembly Replays si nécessaire. Vous trouverez plus d’informations à ce sujet dans la documentation sur les Assembly Notifications (English). -
En définissant
"queue": "batch"dans un Step, vous pouvez vous-même abaisser la priorité de ses Jobs, afin d’éviter de consommer des emplacements prioritaires de Jobs pour des Jobs qui n’ont pas réellement besoin d’un temps d’attente nul en file. Par exemple :
{
"steps": {
// …
"encode": {
"use": ":original",
"robot": "/video/encode",
"queue": "batch",
// …
},
// …
}
}
Où consulter les temps d’attente actuels dans ma région ?
Vous pouvez consulter les temps d’attente actuels des Live Queues et des Batch Queues sur notre page d’état, et y accéder par programmation via notre point de terminaison de l’API des files d’attente (valeurs exprimées en secondes).