The method I was looking for was

class Extended_thread(Threading.thread):
        def run(a)
          #some logic

context=zmq.Context()
socket=context.socket(zmq.REP)
socket.bind('tcp://127.0.0.1:5555')
while True:
    message=socket.recv()
           new Extended_thread(socket)
         

  

Abhishek Kona
Department of Computer Engineering
National Institute of Technology
Karnataka, India


On Tue, Aug 24, 2010 at 10:26 PM, Oliver Smith <oliver@kfs.org> wrote:
Abhishek K said the following on 8/24/2010 8:05 AM:
Hi

I am new to ZeroMQ
I am using a Client Server Model in Python.
This is the basic outline of the server code.

context=zmq.Context()
socket=context.socket(zmq.REP)
socket.bind('tcp://127.0.0.1:5555')
while True:
    message=socket.recv()
    if message[:2]=="01":
    ##logic1
    if messafe[:2]=="02":
      ## logic 2

    socket.send(response)


I have 2 questions,
  • I think the if the message processing logic takes lot of time, how can I thread the process of processing the message (in Python)
  • I need to send an options along with the message, currently I am sending the options as the first  2 characters of the message. (message[:]). Is there a better way provided by ZMQ.
Bear in mind that Python's default threading system isn't true threading... Your first option might be to create separate threads with different endpoints for different message types. You could maybe look at Stackless python for the threading.

You could use the multipart message scheme for splitting the options from the message, and then use a lookup table to decide what function to call to process the second half of the message.

    handlers = {
        '01' : handle01
    ,    '02': handle02
    ...
    }

    def handle01(msg):
        ...

    def handle02(msg):
        ...

    main():
        ...
        msg = sock.recv()
        prefix = msg[:2]
        if not prefix in handlers:
            error(msg)
        else:
            handlers[prefix](msg[2:])

- Oliver



_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev