在rq worker中使用ZMQ

时间:2016-05-23 16:28:15

标签: python zeromq distributed-system python-rq

我正在zmq内的工作人员任务中设置 python-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() 调用不执行任何操作。

1 个答案:

答案 0 :(得分:0)

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

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