Faire tourner un worker en fond avec BullMQ, Celery ou Sidekiq, depuis votre agent IA
Les envois d’e-mails, les exports et les traitements lourds n’ont rien à faire dans vos requêtes. Branché à while par MCP, votre agent IA met en ligne le worker qui les fait en fond, avec sa file d’attente.
Par Aloïs Oddon, cofondateur de Nextmap. Faits relevés le 2 novembre 2026.
Prérequis
- Une appli qui pose des tâches dans une file : BullMQ, Celery, RQ ou Sidekiq.
- Un agent IA qui travaille dans un terminal : Claude Code, Codex, Cursor ou Gemini CLI.
Étape 1 : Donnez ces instructions à votre agent
Ouvrez votre agent dans le dossier de votre appli, et collez-lui ces instructions :
Connecte-toi à while avec mon compte (while.sh/agents), puis mets mon appli en ligne.
Votre agent ajoute lui-même le serveur MCP de while. S’il vous le demande, relancez-le. Au premier appel à while, une page s’ouvre dans votre navigateur. Dans Claude Code, si elle ne s’ouvre pas, tapez /mcp, choisissez while, puis Authenticate. Sur cette page, choisissez « Une nouvelle appli », puis cliquez sur Autoriser.
Étape 2 : Ouvrez votre appli
Votre agent vous donne l’adresse de votre appli, par exemple https://mon-appli.while.cloud, en HTTPS.
Ce que fait votre agent
Il ajoute le worker et sa file à while.yaml :
apiVersion: while/v1
project: mon-appli
services:
- name: web
port: 3000
- name: worker
type: worker
command: [node, worker.js]
caches:
- name: file
durable: true
Le worker tourne sans arrêt, sans adresse publique, avec le même code que votre appli. Sa file vit dans un cache compatible Redis, durable : rien ne se perd au redémarrage. Son adresse, mot de passe compris, arrive dans REDIS_URL, comme dans ce worker BullMQ1 :
import { Worker } from 'bullmq';
import IORedis from 'ioredis';
const connection = new IORedis(process.env.REDIS_URL, { maxRetriesPerRequest: null });
new Worker('emails', async (job) => {
await envoyerEmail(job.data);
}, { connection });
Lancer un worker Celery
Vous, à votre agent : Ajoute un worker Celery pour les exports.
Votre agent déclare le worker avec la commande celery -A monappli worker, branché sur le même cache : il donne REDIS_URL à Celery, avec broker=os.environ['REDIS_URL'].
Voir ce que fait votre worker
Vous, à votre agent : Pourquoi les e-mails partent en retard ?
Votre agent lit les journaux du worker dans while, repère la tâche qui bloque et corrige.
Ajouter de la mémoire
Vous, à votre agent : Donne plus de mémoire au worker des exports.
Votre agent change resources dans while.yaml, et le worker repart avec, à la mise en ligne suivante.
Revenir à la version d’avant
Vous, à votre agent : Reviens à la version d’avant du worker.
La version d’avant du worker reprend en quelques secondes. Votre agent lit l’erreur dans les journaux, corrige et remet en ligne.
Dans la doc : Workers, Cache Valkey (Redis), Tâches planifiées et Versions et retour arrière.
Prochaines étapes
Sources
- BullMQ, les workers, consulté le 2 novembre 2026