ZMQ - Несколько рабочих с одним и тем же сокетом Дилер

У меня есть пакет Python, который должен служить дилером для нескольких частей кода, разбросанных в моем решении. Но до сих пор он использовался только в Django Views, то есть внутри приложения. Но теперь я хочу использовать этот пакет в отдельном скрипте, и мне кажется, что скрипт не может выполнить zmq.Context.instance().socket(zmq.DEALER).connect(SOCKET_ADDR), потому что он уже используется в views.py. Имеет ли это смысл?

dealer.py (пакет):

imports...

context = zmq.Context.instance()
workerCnctn = context.socket(zmq.DEALER)
workerCnctn.identity = 'xxxxx'
workerCnctn.setsockopt(zmq.LINGER, 0)
workerCnctn.connect(SOCKET_ADDR)

class A:
    def __init__(self): 
        self.workerCnctn = workerCnctn
    def send(self, arg1, arg2):
        ...
        self.workerCnctn.send_string(msg)

views.py:

imports ...
import dealer

...

@api_view(["POST"])
def send(request):
    ...
    dealer = dealer.A()
    A.send(arg1, arg2)
    ...

script.py:

imports ...
import dealer

...
    
def main():
    ...
    dealer = dealer.A()
    A.send(arg1, arg2)
    ...

Сценарий должен вызываться вручную, а приложение Django работает постоянно. Я заметил, что в логах Router я могу уловить только сообщения, которые приходят из views.py.

Поэтому я спрашиваю, не могу ли я иметь разных работников с одинаковой целью, использующих один и тот же сокет?

Вернуться на верх