Heartbeat
Heartbeat est une boucle légère de santé d’un profil, gérée par le Gateway. Elle enregistre périodiquement la santé et recherche les travaux Cron activés dont la dernière exécution a échoué. Elle n’exécute aucune demande d’assistant et n’appelle pas le modèle à chaque cycle.
Exécution et fréquence
Le Gateway enregistre un cycle au démarrage. Si Heartbeat est activé, il continue selon l’intervalle configuré ; sinon, il enregistre l’état désactivé sans démarrer la boucle périodique. Heartbeat est distinct de Cron et ne figure pas dans sa liste de travaux.
| Paramètre | Valeur par défaut |
|---|---|
| Activé | Oui |
| Intervalle de cycle | 1 minute |
| Délai de répétition d’échec affiché | 15 minutes |
| Destination active des notifications | Bus d’événements du Gateway |
| Libellés de rôle / Workspace | default / default |
Un cycle sain n’envoie aucun message. Heartbeat compare les travaux en échec par ID et heure de dernière exécution. Il signale une nouvelle signature d’échec observée, y compris une nouvelle exécution ratée du même travail, sans répéter un échec inchangé au seul passage du temps.
Dans v0.1.107, failure_cooldown est chargé et affiché dans l’état, mais le détecteur utilise les changements de signature. Le champ ne retarde pas un nouvel échec et ne planifie pas de rappels répétés pour un échec inchangé. Heartbeat parcourt les travaux Cron activés de tout le profil ; ses libellés rôle/Workspace ne filtrent pas ce parcours.
Vérifier l’état
anyy heartbeat status
anyy heartbeat status --json
Le résultat inclut activation, état, intervalle, délai affiché, rôle, Workspace, destinations, nombre de travaux Cron en échec et heure du dernier cycle. Utilisez toujours le même profil, par exemple anyy --profile work heartbeat status.
Heartbeat figure également dans :
anyy status
anyy doctor
ok signifie que le cycle a effectué son observation correctement ; consultez cron_failed_jobs pour le nombre d’échecs. Cela ne signifie pas que tous les travaux Cron ont réussi. degraded indique une erreur de parcours ou de notification.
Configurer Heartbeat
- Localisez le répertoire du profil voulu en suivant Profils.
- Sauvegardez son
config.yaml, puis modifiez le blocheartbeat. - Lancez
anyy doctorpour ce même profil. - Redémarrez son Gateway avec
anyy gateway restart, puis vérifiezanyy heartbeat statuset le prochain cycle. Utilisez la même sélection--profilepour chaque commande.
heartbeat:
enabled: true
tick_interval: 1m
failure_cooldown: 15m
delivery_targets:
- gateway
role_id: default
workspace_id: default
Utilisez des durées Go positives comme 30s ou 5m. Il n’existe aucune commande publique heartbeat set ou heartbeat tick manuelle. La configuration est lue au démarrage de l’environnement résident ; un redémarrage applique donc l’intervalle modifié.
Livraison des notifications
Le récepteur actuel ne gère que la destination gateway. Il publie un événement en direct au niveau du profil ; cet avis n’a ni route d’adaptateur de canal ni association à une session. Ajouter un nom de plateforme à delivery_targets ne configure pas une destination, et les avis Heartbeat ne font pas partie de l’historique enregistré des notifications système d’une conversation.
Pour examiner un avis, ouvrez Dashboard → Cron, inspectez le travail nommé et ses exécutions, puis corrigez la cause. Heartbeat observe les échecs sans réessayer ni réparer les travaux. Demandez à Anyy de relancer l’automatisation ou attendez sa prochaine exécution, puis vérifiez le résultat.
Dépannage
| Symptôme | Points à vérifier |
|---|---|
L’état reste unknown | Confirmez que le Gateway du profil voulu fonctionne et revérifiez après démarrage |
État ok malgré un échec Cron | Vérifiez cron_failed_jobs et l’historique Cron ; ok décrit l’observation de santé |
| Modifier le délai ne produit pas d’avis répété | Les signatures inchangées ne sont pas renvoyées ; le délai n’est pas un rappel périodique |
| Nouvel avis pour le même travail | L’heure de dernière exécution a pu changer après un nouvel échec |
| Aucun message externe reçu | Heartbeat publie actuellement uniquement sur le Gateway ; utilisez une automatisation planifiée pour un canal configuré |
| Modifier l’intervalle n’a aucun effet | Redémarrez le Gateway du profil et vérifiez l’intervalle affiché |