2017-10-10 4 views
1

En C, les divers appels de ZeroMQ renvoient des codes d'erreur.La liaison Python zmq (ZeroMQ) échoue silencieusement

Mais si le Python suivant est exécuté dans deux processus dans un serveur, le second processus échoue - complètement en silence. Comment puis-je détecter cette situation?

a) Pourquoi ne génère-t-il pas une erreur?

b) Pourquoi aucun des appels Python ZMQ ne retourne-t-il des codes d'état, s'ils ne l'affirment pas?

import zmq 
context = zmq.Context() 
socket = context.socket(zmq.PUB) 
socket.bind("tcp://*:5556") 
socket.send("Hello world") 

Répondre

0

a) le ZeroMQ python-binding respectifs auteur a décidé ou non de le soulever.

l'utilisateur a toujours des options pour inspecter le zmq_errno(), n'est-ce pas?

b) encore, personne, mais la décision Hamlet de l'auteur de liaison de python - à faire ou à ne pas faire.

Les écoles de conception conservatrices conseillent d'être plutôt explicites sur la cartographie des ressources en .bind() appels de méthodes. Un mappage explicitement contrôlé devrait, en vertu d'une pratique de conception régulière, ne jamais entrer en collision sur des ressources-mappage lorsque .bind() -ing, devrait-il?