0

我正在尝试zmqpython-rq.

如果我context在任务函数内部创建:

def push( user, task_id, data ):
    """Push message to `user` over websocket.
    """


    ctx = zmq.Context()
    pub = ctx.socket( zmq.PUB )
    pub.connect( 'ipc:///tmp/message_flow_in' )

    pub.send( b"0 " + json.dumps( {'username': user,
                                   'id':       task_id,
                                   'data':     data
                                   }
                                  ).encode( 'utf-8' )
              )

pub.send()通话什么也不做。

4

1 回答 1

0

所以我不知道python,所以这可能不正确,但它与我在c++中使用zeromq遇到的问题非常相似,所以:

当您调用 send 时,消息实际上并未发送,而是将其复制到套接字/上下文中的缓冲区,以便稍后由上下文发送。因此,当您的函数返回并且本地套接字/上下文超出范围时,消息可能会在上下文发送之前被删除。

于 2016-05-23T22:34:21.713 回答