apache / apache/rocketmq-client-python

A process is launched within the callback function, and an error occurs when attempting to send an MQ message within that process.

Abierto
#147 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
305
Forks
98
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

i write a code like that:
```python
from multiprocessing import Process
from rocketmq.client import Producer, Message, PushConsumer, ConsumeStatus
import time
import json

def rmq_consumer():
consumer = PushConsumer('group_demo')
consumer.set_name_server_address('10.13.2.12:9876')
consumer.subscribe('start_or_end_detect', send_message, "*")
print(' [Consumer] Waiting for messages.')
consumer.start()
while True:
time.sleep(1)

def start_pro():
producer = Producer('test_producer')
producer.set_name_server_address('10.13.2.12:9876')
producer.start()
try:
event = {"aa": "vv", "bb": 33}
msg = Message("fireMsg")
ss = json.dumps(event).encode('utf-8')
msg.set_body(ss)
producer.send_sync(msg)

finally:
producer.shutdown()

def send_message():
i = Process(target=start_pro)
i.start()

return ConsumeStatus.CONSUME_SUCCESS

if __name__ == '__main__':
rmq_con = Process(target=rmq_consumer)
```
The code snippet "'**producer.send_sync(msg)**'"
throws an error
**"rocketmq.exceptions.ProducerSendSyncFailed: No route info of this topic: fireMsg,error:-1,in file rocketmq-client-cpp/src/producer/DefaultMQProducerImpl.cpp line:434"**

What could be the cause of this? My RocketMQ deployment is functioning normally.

**If I don't execute Process(target=start_pro) within the send_message method and instead directly include the contents of start_pro within send_message, the aforementioned error does not occur.**

Looking forward to your response. Thank you.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.