2014-10-30 11 views
5

Sto lavorando a un sito Web e sto utilizzando Django per lo sviluppo. Ho alcuni dispositivi che comunicano con il sito Web utilizzando MQTT e ho intenzione di utilizzare il client paho-mqtt. Il mio problema è che per la funzione paho-mqtt devo chiamare una funzione che si interrompe per sempre mentre paho-mqtt continua ad ascoltare i messaggi. Qual è il modo migliore per avere questo ciclo chiamato e contenuto nella sua stessa discussione?Come gestire la funzione di loop_forever mqtt quando si utilizza Django?

Posso solo creare un nuovo thread, o dovrei usare qualcosa come il sedano?

+0

forse usare 'celety' è la scelta migliore. –

+0

Come hai ottenuto l'integrazione alla fine? Ho un caso simile, ma ho solo bisogno di pubblicare cose, quindi sto creando un nuovo oggetto mqtt per ogni richiesta che ne ha bisogno. Mi chiedo se questo sprechi risorse. – rslite

+0

Se si crea il client come client.loop_forever() in seguito si chiama client.loop_start(). Quindi basta chiamare client.publish ("paho/temperatura", temperatura) quando è necessario. Il loop_forever dovrebbe gestire disconnessioni e riconnessioni per te. – mike29892

risposta

3

Utilizzare invece l'interfaccia filettata per paho-mqtt. Ciò avvia un thread in background per gestire l'elaborazione di rete e può essere accessibile con loop_start(). In alternativa puoi creare il tuo thread e chiamare lo loop() da solo.

+0

Grazie! Non so come mi sia perso questo. – mike29892

Problemi correlati