Si je crée une ligne d'amusement pour les tout-petits (voir http://blog.tropo.com/2010/11/22/something-fun-and-quick-to-make-the-toddler-amusement-line/) en utilisant Twilio et Kynetx, dois-je définir une condition d'arrêt dans mon jeu de règles ou les évaluations se termineront-elles lorsque l'appelant raccroche?Les règles KRL s'arrêtent-elles lorsqu'un appel Twilio se termine?
// WARNING! Do not use this ruleset!
rule callstart {
select when twilio callstart
always { raise explicit event loves_me }
}
rule loves_me {
select when explicit loves_me
twilio:say("She loves me.")
always { raise explicit event loves_me_not }
}
rule loves_me_not {
select when explicit loves_me_not
twilio:say("She loves me not.")
always { raise explicit event loves_me }
}
Ma conjecture: L'appel démarre l'ensemble de règles en cours d'exécution. L'appelant sonne. Une petite partie de KNS pleure.
Merci! Je pense que je comprends mieux maintenant. –
Il y a ici un principe important à comprendre. Lorsqu'un événement est élevé à KRE (par Twilio ou toute autre chose), les règles que cet événement sélectionne sont ajoutées à la planification et le moteur commence à traiter le planning. Lorsque vous déclenchez un événement explicite, la même planification est modifiée pour ajouter les nouvelles règles sélectionnées par cet événement. Si vous continuez à soulever le même événement que le résultat de ce traitement, comme Sam l'a expliqué, vous entrerez dans une boucle. Nous avons un disjoncteur dans le code pour empêcher les boucles infinies. –