2017-06-29 5 views
0

J'essaye d'implémenter un serveur Twisted composé de plusieurs processus qui écoutent tous sur un socket UNIX. J'ai essayé d'activer les options SO_REUSEADDR et SO_REUSEPORT pour le socket et utilisé le point de terminaison suivant: unix: address =/tmp/web.sock: lockfile = 0.Réutilisation des sockets UNIX avec Twisted sur plusieurs processus

Cela fonctionne très bien avec un processus, cependant, quand j'en engendre plusieurs, il semble toujours y avoir seulement une écoute sur ce socket. Y at-il quelque chose que je fais mal dans ma configuration actuelle?

+0

typiquement chaque processus aura un seul socket unix que vous chargeriez l'équilibre entre –

Répondre

0

Vous ne pouvez pas partager un socket UNIX en le liant plusieurs fois. Au lieu de cela, liez-le une fois et partagez le descripteur de fichier résultant dans tous les processus.

Vous pouvez presque faire cela en utilisant l'API adoptStreamPort de Twisted (mais actuellement UNIX support has not been released).