我正在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()
调用不执行任何操作。
答案 0 :(得分:0)
所以我不知道python,所以这可能不正确,但它非常类似于我在c ++中使用zeromq的问题所以:
当您调用send时,该消息不会被实际发送,它会被复制到套接字/上下文中的缓冲区,以便稍后通过上下文发送。因此,当您的函数返回并且本地套接字/上下文超出范围时,该消息可能会在上下文发送之前被删除。