У меня есть сервер flash-socketio, работающий на нескольких модулях, использующих redis в качестве очереди сообщений. Я хочу убедиться, что излучения от внешних процессов достигают цели 100% времени, или чтобы знать, когда они потерпели неудачу.
Когда процесс A отправляет событие в сокет, подключенный к процессу B, событие передается клиенту через очередь сообщений для процесса B. Можно ли как-то перехватить исходящий выброс в процессе B? В идеале я бы использовал работника, чтобы через несколько секунд проверить, пришло ли сообщение клиенту (через событие подтверждения, отправленное клиентом), или оно будет отправлено снова.
Этот код выполняется в процессе A:
@app.route('/ex')
def ex_route():
socketio.emit('external', {'text': f'sender: {socket.gethostname()}, welcome!'}, room='some_room')
return jsonify(f'sending message to room "some_room" from {socket.gethostname()}')
Это результат процесса A
INFO:socketio.server:emitting event "external" to some_room [/]
INFO:geventwebsocket.handler:127.0.0.1 - - [2019-01-11 13:33:44] "GET /ex HTTP/1.1" 200 177 0.003196
Это вывод процесса B
INFO:engineio.server:9aab2215a0da4816a45e3fdc1e449fce: Sending packet MESSAGE data 2["external",{"text":"sender: *******, welcome!"}]