Exécuter des invites selon un planning
Utilisez
/loopet les outils de planification cron pour exécuter des invites de manière répétée, interroger un statut ou définir des rappels ponctuels dans une session Qwen Code.
Les tâches planifiées permettent à Qwen Code de réexécuter automatiquement une invite à intervalles réguliers. Utilisez-les pour interroger un déploiement, surveiller une PR, vérifier l’état d’une construction longue ou vous rappeler de faire quelque chose plus tard dans la session.
Les tâches sont limitées à la session : elles vivent dans le processus Qwen Code en cours et disparaissent lorsque vous quittez. Rien n’est écrit sur le disque.
Tip : Les tâches planifiées sont activées par défaut. Pour les désactiver, définissez
experimental.cron: falsedans vos paramètres, ou définissezQWEN_CODE_DISABLE_CRON=1dans votre environnement.
Planifier une invite récurrente avec /loop
La compétence intégrée /loop est le moyen le plus rapide de planifier une invite récurrente. Passez un intervalle optionnel et une invite, et Qwen Code met en place une tâche cron qui s’exécute en arrière-plan tant que la session est ouverte.
/loop 5m vérifie si le déploiement est terminé et dis-moi ce qu'il s'est passéQwen Code analyse l’intervalle, le convertit en expression cron, planifie la tâche et confirme la cadence et l’ID de la tâche. Il exécute ensuite immédiatement l’invite une fois — vous n’avez pas à attendre le premier déclenchement cron.
Syntaxe des intervalles
Les intervalles sont optionnels. Vous pouvez les placer au début, à la fin, ou les omettre complètement.
| Forme | Exemple | Intervalle parsé |
|---|---|---|
| Mot en tête | /loop 30m vérifie la construction | toutes les 30 minutes |
Clause every en fin | /loop vérifie la construction every 2 hours | toutes les 2 heures |
| Aucun intervalle | /loop vérifie la construction | par défaut toutes les 10 minutes |
Les unités supportées sont s pour les secondes, m pour les minutes, h pour les heures et d pour les jours. Les secondes sont arrondies à la minute supérieure car cron a une granularité d’une minute. Les intervalles qui ne se divisent pas exactement dans leur unité, comme 7m ou 90m, sont arrondis à l’intervalle net le plus proche et Qwen Code vous indique ce qu’il a choisi.
Boucler sur une autre commande
L’invite planifiée peut elle-même être une commande ou un appel de compétence. Cela est utile pour réexécuter un workflow que vous avez déjà créé.
/loop 20m /review-pr 1234Chaque fois que la tâche se déclenche, Qwen Code exécute /review-pr 1234 comme si vous l’aviez tapé.
Gérer les boucles
/loop prend également en charge deux sous-commandes pour gérer les tâches existantes :
/loop listListe toutes les tâches planifiées avec leurs ID et expressions cron.
/loop clearAnnule toutes les tâches planifiées d’un coup.
Définir un rappel ponctuel
Pour les rappels uniques, décrivez ce que vous voulez en langage naturel au lieu d’utiliser /loop. Qwen Code planifie une tâche à déclenchement unique qui se supprime après exécution.
rappelle-moi à 15h de pousser la branche de releasedans 45 minutes, vérifie si les tests d'intégration ont réussiQwen Code fixe l’heure de déclenchement à une minute et une heure spécifiques à l’aide d’une expression cron et confirme le moment où elle se déclenchera.
Gérer les tâches planifiées
Demandez à Qwen Code en langage naturel de lister ou annuler des tâches, ou référez-vous directement aux outils sous-jacents.
quelles tâches planifiées ai-je ?annule la tâche de vérification du déploiementSous le capot, Qwen Code utilise ces outils :
| Outil | Objectif |
|---|---|
CronCreate | Planifier une nouvelle tâche. Accepte une expression cron à 5 champs, l’invite à exécuter, et si elle se répète ou se déclenche une fois. |
CronList | Lister toutes les tâches planifiées avec leurs ID, plannings et invites. |
CronDelete | Annuler une tâche par son ID. |
Chaque tâche planifiée possède un ID de 8 caractères que vous pouvez passer à CronDelete. Une session peut contenir jusqu’à 50 tâches planifiées simultanément.
Comment les tâches planifiées s’exécutent
Le planificateur vérifie chaque seconde les tâches dues et les met en file d’attente lorsque la session est inactive. Une invite planifiée se déclenche entre vos tours, pas pendant que Qwen Code est en train de répondre. Si Qwen Code est occupé lorsqu’une tâche devient due, l’invite attend la fin du tour en cours.
Toutes les heures sont interprétées dans votre fuseau horaire local. Une expression cron comme 0 9 * * * signifie 9h là où vous exécutez Qwen Code, pas UTC.
Dispersion
Pour éviter que chaque session n’appelle l’API au même moment sur l’horloge, le planificateur ajoute un petit décalage déterministe aux heures de déclenchement :
- Les tâches récurrentes se déclenchent jusqu’à 10 % de leur période en retard, plafonné à 15 minutes. Une tâche horaire peut se déclencher n’importe où entre
:00et:06. - Les tâches ponctuelles planifiées en haut ou en bas de l’heure (minute
:00ou:30) se déclenchent jusqu’à 90 secondes plus tôt. Le décalage est dérivé de l’ID de la tâche, donc une même tâche obtient toujours le même décalage. Si la synchronisation exacte importe, choisissez une minute qui n’est ni:00ni:30, par exemple3 9 * * *au lieu de0 9 * * *, et le délai aléatoire unique ne s’appliquera pas.
Expiration de trois jours
Les tâches récurrentes expirent automatiquement 3 jours après leur création. La tâche se déclenche une dernière fois, puis se supprime. Cela limite la durée d’exécution d’une boucle oubliée. Si vous avez besoin qu’une tâche récurrente dure plus longtemps, annulez-la et recréez-la avant son expiration.
Les tâches uniques n’expirent pas sur un minuteur — elles se suppriment simplement après avoir été déclenchées une fois.
Référence des expressions cron
CronCreate accepte les expressions cron standard à 5 champs : minute hour day-of-month month day-of-week. Tous les champs prennent en charge les caractères génériques (*), les valeurs uniques (5), les pas (*/15), les plages (1-5) et les listes séparées par des virgules (1,15,30).
| Exemple | Signification |
|---|---|
*/5 * * * * | Toutes les 5 minutes |
0 * * * * | Toutes les heures à l’heure pile |
7 * * * * | Toutes les heures à 7 minutes passées |
0 9 * * * | Tous les jours à 9h (heure locale) |
0 9 * * 1-5 | En semaine à 9h (heure locale) |
30 14 15 3 * | Le 15 mars à 14h30 (heure locale) |
Le jour de la semaine utilise 0 ou 7 pour dimanche jusqu’à 6 pour samedi. Lorsque le jour du mois et le jour de la semaine sont tous deux contraints (aucun n’est *), une date correspond si l’un des deux champs correspond — cela suit la sémantique standard de vixie-cron.
La syntaxe étendue comme L, W, ?, et les alias de noms tels que MON ou JAN ne sont pas pris en charge.
Limitations
La planification à portée de session comporte des contraintes inhérentes :
- Les tâches ne se déclenchent que lorsque Qwen Code est en cours d’exécution et inactif. Fermer le terminal ou laisser la session se terminer annule tout.
- Pas de rattrapage pour les déclenchements manqués. Si l’heure planifiée d’une tâche passe alors que Qwen Code est occupé sur une requête longue, elle se déclenche une fois lorsque Qwen Code redevient inactif, et non une fois par intervalle manqué.
- Pas de persistance après un redémarrage. Redémarrer Qwen Code efface toutes les tâches liées à la session.