Как отправить в сокет zmq из разных потоков - PullRequest
0 голосов
/ 27 марта 2019

У меня около 20 серверов с 1 подпиской и 1 публикацией сокетов. И еще один клиент с 1 подпиской и 1 публикацией сокетов. Клиент получает и отправляет ZeroMQ сообщения с серверов с опросом Серверы отправляют сообщения в основном цикле, и примерно каждые 40 мсек следует отправлять сообщения из разных потоков (каждый сервер имеет второй поток)

Моя проблема: серверы не получают сообщения всех клиентов! Я вижу, что потоки отправляют слишком много сообщений клиенту, но некоторые сообщения клиентов они не получают вообще. Как мне правильно работать с сокетами zeroMQ?

Теперь я использую mutex = threading.Lock() Поэтому я использую mutex.acquire для обработки клиентского сообщения. Процесс означает, что я получаю сообщение из PUB-сокета, могу сделать какие-то вычисления или ничего не делать и отправить ответное сообщение в SUB-сокет. Тогда я использую mutex.release.

...