Je souhaite communiquer deux processus (expéditeur et destinataire) à l'aide de zeromq. Maintenant, si le processus de réception ne fonctionne pas, je voudrais que le processus de l'expéditeur continue son exécution, même si le message est perdu.Problème lors de l'implémentation d'un mécanisme de publication non bloquant avec zeromq
En essayant de l'implémenter en utilisant le modèle PUB-SUB, j'ai remarqué que si le récepteur ne fonctionne pas, l'expéditeur raccroche. Par exemple, dans le code source de l'expéditeur suivant:
import zmq
context = zmq.Context()
sender = context.socket(zmq.PUB)
sender.connect("tcp://localhost:5555")
sender.send("Sending to nobody", NOBLOCK)
print "Msg sent"
lorsque le récepteur est en panne, le message « Message envoyé » est jamais imprimé, et l'expéditeur reste dans « sender.send (» Envoi à personne », NOBLOCK)" pour toujours. En outre, j'ai essayé de vérifier si le récepteur est en haut ou pas le retour de la fonction connect, mais il est toujours "None" dans les deux cas.
J'utilise Python 2.6.5 et 2.1 ZeroMQ
Quelqu'un sait ce qu'il se passe ou une solution de rechange? (Je l'ai essayé d'utiliser PULL-PUSH et REQ-REP, mais des résultats similaires)
Merci beaucoup à l'avance
Ce code ne s'exécute pas réellement (le symbole NOBLOCK n'est pas défini). Cela aide vraiment à écrire du code que les gens peuvent couper et coller. – larsks