Aller au contenu principal

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ètreValeur par défaut
ActivéOui
Intervalle de cycle1 minute
Délai de répétition d’échec affiché15 minutes
Destination active des notificationsBus d’événements du Gateway
Libellés de rôle / Workspacedefault / 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​

  1. Localisez le répertoire du profil voulu en suivant Profils.
  2. Sauvegardez son config.yaml, puis modifiez le bloc heartbeat.
  3. Lancez anyy doctor pour ce même profil.
  4. Redémarrez son Gateway avec anyy gateway restart, puis vérifiez anyy heartbeat status et le prochain cycle. Utilisez la même sélection --profile pour 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ômePoints à vérifier
L’état reste unknownConfirmez que le Gateway du profil voulu fonctionne et revérifiez après démarrage
État ok malgré un échec CronVé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 travailL’heure de dernière exécution a pu changer après un nouvel échec
Aucun message externe reçuHeartbeat publie actuellement uniquement sur le Gateway ; utilisez une automatisation planifiée pour un canal configuré
Modifier l’intervalle n’a aucun effetRedémarrez le Gateway du profil et vérifiez l’intervalle affiché