-
Notifications
You must be signed in to change notification settings - Fork 2
Home
virtualenv -p python3 env # création du virtualenv
source env/bin/activate
pip install pyzmq --install-option="--zmq=bundled"
apt-get install python3-zmq
Ensuite il suffit juste de renseigner le chemin vers le dossier contenant zerobot ($DIR_REPO/python3/).
Il est possible d'installer le module zerobot dans l'environement global python3 avec quelque chose du style (non testé xD, bossez qvec des virtualenv) :
pip-3 install -e ./python3/
Les messages sont en json.
{
uid: "98e0ee46-13d2-11e2-93a2-0016ea56a3a8",
fct: "ping",
args: [ // paramètres positionnels
56
],
kwargs: {} // paramètres nommés
}
{
uid: "98e0ee46-13d2-11e2-93a2-0016ea56a3a8",
data: 98,
error: null,
}
Actuellement tous les scripts doivent être lancés depuis le dossier python3/scripts. Chaque script dispose d'un aide, pour cela il suffit de fournir l'option -h.
./server.py
./server --frontend tcp://*:8000 --backend tcp://*8001 --publish tcp://*:8002
Le script ping.py sert tester qu'un service répond. Par default il effectue la commande ping, mais il est possible de demander une autre methode et de passer des parametres.
./ping.py --remote-id <id du service>
./ping.py --connect tcp://localhost:8000 --remote-id <id du service> -f une_fonction -args '[1,2,3]'
Les arguments doivent être passer en sous forme de liste pythonique.
Le script log.py permet de voir les logs en directe.
./log.py
Avec un lancement classique tous les logs sont visibles, il est possible de ne voir que les messages envoyés par certains clients.
Souscrire uniquement aux messqges envoyés pqr service1 et service2 :
./log.py --subscribe service1,service2
Il est aussi possible d'utiliser grep, par example pour n'avoir que les messages dirigés vers le client1 :
./log.py | grep 'To : client1'
La console permet de faire des requêtes a un service en ligne de commande. Actuellement la console n'est rien d'autre qu'un interpreter python.
./console --remote-id <id du service>
>>> client.ping(56)
98
>>> client.help()
affiche les methodes du client
>>> client.help('ping')
affiche la doc de la fonction ping
>>> for i in range(3):
... client.ping(42)
...
84
84
84
>>>
Le script implémente un service basique : ping et time. Cela permet de tester l'architecture.