Как добавить функцию тайм-аута в скрипт ниже? - PullRequest
0 голосов
/ 08 марта 2019

У меня есть функция publish_data, основной задачей которой является создание клиента, подписка на тему ack и публикация данных на устройстве device1. Функция on_message ожидает получения сообщения от device1 по теме ack в течение 5 секунд. Как я могу вернуть False для функции publish_data, если сообщение не было получено функцией on_message в течение 5 секунд, и True, если сообщение получено. Есть ли лучший способ реализовать то же самое?

def publish_data(target_id, data):

    def on_message(client, userdata, msg):
        print "message recieved"    

    def send_data(target_id, data):
        client = paho.Client()
        client.connect("localhost", 1883)
        client.loop_start()
        client.subscribe("ack", qos=0)
        client.on_message = on_message
        client.publish("device1", payload=data, qos=0)

    send_data(target_id, data)

return_value = mqtt_function("device1",{"hello":"world"})
if return_value:
    print "yureka"
else:
   print "try again"
...