Cloudflare Queues résout le problème que toute application serverless finit par rencontrer : une requête arrive et déclenche un travail que l’utilisateur ne devrait pas avoir à attendre. Envoyer l’e-mail de confirmation, redimensionner le fichier téléversé, synchroniser l’enregistrement vers un tiers. Sur un serveur classique, vous confiez cela à un processus de fond. Sur Workers, il n’y a aucun processus à qui le confier.
Les contournements habituels sont pires qu’ils n’en ont l’air. Faire le travail en ligne oblige l’utilisateur à attendre un fournisseur d’e-mail. Envoyer une requête vers un autre Worker sans l’attendre perd la tâche dès que l’invocation appelante se termine la première. Aucune des deux approches ne survit à une panne de fournisseur.
Ce qu’une file vous apporte : la durabilité et les nouvelles tentatives, pas la vitesse. Le producteur écrit un message et rend la main immédiatement, un Worker consommateur distinct le récupère, et si le consommateur échoue, le message repart dans la file plutôt que dans le vide. C’est là toute sa valeur. Si votre tâche de fond ne supporte pas d’être rejouée, une file ne vous sauvera pas.
Comment les pièces s’assemblent
Une file a deux extrémités, et les deux sont des Workers.
Le producteur est n’importe quel Worker doté d’un binding de file. Il appelle send avec un corps de message, et cet appel rend la main dès que le message est stocké de façon durable. La requête de l’utilisateur se termine sans attendre le travail.
Le consommateur est un Worker doté d’un gestionnaire de file. Cloudflare l’invoque avec un lot de messages, et le gestionnaire acquitte chaque message qu’il traite avec succès. Tout ce qui n’est pas acquitté est redistribué.
Le comportement de redistribution est la partie autour de laquelle il faut concevoir. Un message peut arriver plus d’une fois, ce qui veut dire que votre consommateur doit être idempotent. Débiter une carte dans un consommateur de file sans clé d’idempotence, c’est la garantie de devoir rembourser des clients. Envoyer deux fois un e-mail est agaçant, encaisser deux fois est un incident de support.
Une file de lettres mortes récupère les messages qui échouent de façon répétée. Sans elle, un message définitivement cassé est rejoué jusqu’à épuiser ses tentatives, puis disparaît. Avec elle, il atterrit quelque part où vous pouvez l’inspecter. Configurez-la avant d’en avoir besoin.
Ce que coûte réellement une opération
Le modèle tarifaire est assez inhabituel pour piéger les équipes, car la facturation ne se fait pas au message.
Une opération est comptée par tranche de 64 Ko de données écrites, lues ou supprimées. Un message de moins de 64 Ko livré normalement coûte trois opérations : une écriture, une lecture, une suppression. Un message de 127 Ko coûte deux opérations par action, soit six au total pour cette même livraison unique.
| Workers Free | Workers Paid | |
|---|---|---|
| Inclus | 10 000 opérations par jour | 1 000 000 opérations par mois |
| Au-delà | non disponible | 0,40 $ par million d’opérations |
| Egress | aucun | aucun |
Les nouvelles tentatives changent le calcul. Chaque redistribution est une lecture de plus, et une écriture dans la file de lettres mortes est une écriture de plus. Un consommateur qui échoue cinq fois sur un message avant de réussir coûte bien plus que trois opérations, ce qui est une bonne raison de réparer un consommateur instable plutôt que d’augmenter son nombre de tentatives.
Faites le calcul sur votre propre trafic avant de supposer que c’est bon marché. Un million de messages par mois à trois opérations chacun font trois millions d’opérations, ce qui dépasse le quota du plan payant et coûte environ quatre-vingts pence. C’est réellement bon marché. Dix millions de messages par jour, c’est une autre conversation.
Les limites qui décident si cela convient
D’après la documentation des limites de Queues de Cloudflare, vérifiée en août 2026.
| Limite | Valeur |
|---|---|
| Files par compte | 10 000 |
| Taille maximale d’un message | 128 Ko |
| Messages par envoi groupé | 100, ou 256 Ko au total |
| Tentatives par message | 100 |
| Durée de rétention | configurable jusqu’à 14 jours |
| Backlog par file | 25 Go |
| Invocations simultanées du consommateur | 250, en mode push uniquement |
| Temps d’exécution du consommateur | 15 minutes |
| Débit par file | 5 000 messages par seconde |
Deux d’entre elles comptent plus que les autres. Le plafond de 128 Ko par message signifie que vous ne mettez pas de fichiers dans une file. Vous mettez un pointeur dans la file et le fichier dans R2, ce qui est de toute façon la bonne forme. Le backlog de 25 Go est ce qui vous protège du désastre silencieux : si votre consommateur casse un vendredi et que personne ne s’en aperçoit, la file se remplit puis rejette les nouveaux messages avec une erreur de stockage au lieu de les jeter discrètement.
Le débit de 5 000 messages par seconde est généreux, mais il s’applique par file. Une file unique très sollicitée est un goulot d’étranglement que vous pouvez éliminer dès la conception en répartissant la charge sur plusieurs files.
Quand Cloudflare Queues est la mauvaise réponse
Quand le travail est réellement synchrone. Si l’utilisateur a besoin du résultat à l’écran, le mettre en file ajoute seulement un aller-retour et un problème de polling. Faites-le en ligne et faites-le vite.
Quand vous avez besoin d’un traitement ordonné et exactement une fois. Queues offre une livraison au moins une fois. Tout ce qui exige un ordre strict ou une sémantique exactement une fois demande une coordination que la file ne fournit pas, et sur Cloudflare cela signifie en général un Durable Object.
Quand la tâche est planifiée et non déclenchée. Un nettoyage nocturne n’a pas besoin de file. Un déclencheur cron qui invoque directement un Worker est plus simple et comporte moins de pièces mobiles.
Quand le travail dépasse 15 minutes. Un consommateur qui dépasse sa limite de temps d’exécution sera arrêté en plein travail. Les longs processus en plusieurs étapes veulent Cloudflare Workflows, conçu pour l’exécution durable à travers des étapes, plutôt qu’un consommateur de file qui essaie de tenir un état pendant un quart d’heure.
Notre guide pour créer une API serverless avec Cloudflare Workers couvre le chemin de requête qui produit habituellement ces tâches, et Cloudflare Workers vs AWS Lambda explique en quoi le modèle d’exécution diffère du schéma SQS et Lambda avec lequel arrivent la plupart des équipes.
Par où commencer
Choisissez le seul morceau de travail de votre gestionnaire de requêtes que l’utilisateur n’a pas besoin d’attendre, et ne déplacez que celui-là. Donnez-lui une file de lettres mortes dès le premier jour, rendez le consommateur idempotent, et surveillez la métrique de backlog plutôt que de supposer qu’elle est à zéro.
Mecanik conçoit et audite des architectures edge via notre équipe de développement logiciel , y compris la partie où quelqu’un demande si la tâche a vraiment besoin d’une file. La plupart des systèmes en veulent une ou deux, pas une par fonctionnalité.
À lire également : Cloudflare Hyperdrive : Postgres depuis la périphérie , Comment créer une application web en 2026 , Cloudflare D1 : créer une base de données SQL serverless en périphérie et Cloudflare Workers AI : exécuter des modèles IA en périphérie en 2026 .
Questions fréquentes
Combien coûte Cloudflare Queues ? Le plan Workers Free inclut 10 000 opérations par jour et le plan Paid un million d’opérations par mois, les opérations supplémentaires sont facturées 0,40 $ par million et il n’y a aucun frais d’egress. Une opération est comptée par tranche de 64 Ko écrite, lue ou supprimée, donc un message normal de moins de 64 Ko coûte trois opérations au total : une écriture, une lecture et une suppression.
Qu’est-ce qui compte comme une opération dans Cloudflare Queues ? Chaque tranche de 64 Ko de données écrite, lue ou supprimée. Un message de moins de 64 Ko coûte une opération par action, tandis qu’un message de 127 Ko en coûte deux par action. Les nouvelles tentatives ajoutent une lecture à chaque fois, et une écriture dans la file de lettres mortes ajoute une écriture, donc un consommateur instable coûte bien plus que les trois opérations de base par message.
Quelle est la taille maximale d’un message dans Cloudflare Queues ? 128 Ko par message, avec des envois groupés limités à 100 messages ou 256 Ko au total. À cause de ce plafond, vous stockez la charge utile dans R2 ou un autre stockage objet et ne mettez qu’un pointeur dans la file, ce qui reste le meilleur design indépendamment de la limite.
Cloudflare Queues garantit-il une livraison exactement une fois ? Non. La livraison est au moins une fois, un message peut donc arriver plusieurs fois et votre consommateur doit être idempotent. Encaisser un paiement ou émettre un avoir dans un consommateur sans clé d’idempotence finira par produire un doublon. Un ordre strict ou une sémantique exactement une fois exigent plutôt un Durable Object.
Quand ne faut-il pas utiliser Cloudflare Queues ? Quand l’utilisateur attend le résultat, quand vous avez besoin d’un ordre strict ou d’un traitement exactement une fois, quand la tâche est planifiée plutôt que déclenchée et qu’un déclencheur cron suffirait, ou quand le travail dure plus que la limite de 15 minutes du consommateur. Ce dernier cas est précisément la raison d’être de Cloudflare Workflows.
Commentaires