Messages : 2,333
Sujets : 190
Inscription : Apr 2004
Hello ici !
Je teste MegaHal (et l'interface de MenzAgitat) et je me posais la question suivante:
Puis-je lancer le module sur plusieurs eggdrop (une seule compil, multiples .conf) sans souci, et surtout le "cerveau" sera-t-il commun ?
Merci d'avance.
P.S.: si personne n'a la réponse, je ferai des tests moi-même, au pire je perdrais quelques jours d'apprentissage.
Messages : 926
Sujets : 93
Inscription : Jul 2007
Niveau d’avertissement :
0%
Ca devrait pouvoir fonctionner avec un cerveau commun si tu évites les collisions lors de la lecture ou de l'écriture du brain.
En cas de collision le bot se verra refuser l'accès au fichier et fera une erreur au chargement ou à la sauvegarde du brain.
Messages : 2,333
Sujets : 190
Inscription : Apr 2004
Merci pour ta réponse.
Tu penses qu'il y a un moyen de se protéger des collisions ?
Messages : 926
Sujets : 93
Inscription : Jul 2007
Niveau d’avertissement :
0%
En fait il y a un autre problème.
Si tu partages un seul brain, tu vas devoir n'activer l'apprentissage que sur un seul bot sans quoi il va se produire une désynchronisation du brain. Dans le cas contraire, chaque bot apprenant séparément va écrire son brain à intervalles réguliers, mais ce faisant il ne le relit pas et donc n'est pas au courant des modifications faites par les autres eggs.
En gros, chaque egg écrivant le brain écrasera ce que les autres eggs ont appris juste avant.
Tu dois donc avoir un seul egg en mode apprentissage et tous en mode réponse.
En ce qui concerne les collisions, tu dois juste t'assurer que les eggs ne démarrent pas en même temps et n'accèderont pas au même moment au fichier pour le lire. Ca ne se produit qu'une seule fois au démarrage de l'egg et l'opération se termine en une fraction de seconde. Il est donc peu probable d'avoir une collision mais ça peut quand même arriver.
La solution serait de rajouter un test d'accessibilité du fichier brain (pardon DES fichiers brain, n'oublie pas le .PHR et le .DIC) juste avant de le lire, et de répéter l'opération quelques secondes après si celle-ci échoue.
Messages : 2,333
Sujets : 190
Inscription : Apr 2004
Ah, je note pour l'apprentissage et désactive ma bétise :)