2014-10-30 4 views
5

저는 웹 사이트에서 일하고 있으며 개발을 위해 장고를 사용하고 있습니다. MQTT를 사용하여 웹 사이트와 통신하는 장치가 몇 개 있으며 paho-mqtt 클라이언트를 사용할 계획입니다. 내 문제는 paho-mqtt가 작동하려면 paho-mqtt가 메시지를 수신하는 동안 영원히 반복되는 함수를 호출해야한다는 것입니다. 이 루프를 호출하여 자신의 스레드에 포함시키는 가장 좋은 방법은 무엇입니까?Django를 사용할 때 mqtt loop_forever 함수를 처리하는 방법은 무엇입니까?

그냥 새 스레드를 만들 수 있습니까? 아니면 셀러리 같은 것을 사용해야합니까?

+0

어쩌면'celety'가 최선의 선택입니다. –

+0

어떻게 통합이 끝나게 되었습니까? 비슷한 경우가 있지만 물건을 게시하면되므로 각 요청에 대해 새로운 mqtt 객체를 만들 수 있습니다. 그게 자원을 낭비하는지 궁금 하네. – rslite

+0

client.loop_forever()와 같은 클라이언트를 작성한 후에는 나중에 client.loop_start()를 호출합니다. 그런 다음 필요할 때 client.publish ("paho/temperature", temperature)를 호출하면됩니다. loop_forever는 연결 해제를 처리하고 다시 연결해야합니다. – mike29892

답변

3

대신 paho-mqtt에 스레드 인터페이스를 사용하십시오. 이렇게하면 네트워크 처리를 처리하기위한 백그라운드 스레드가 시작되고 loop_start()으로 액세스 할 수 있습니다. 또는 직접 스레드를 만들고 loop()에게 직접 전화 할 수도 있습니다.

+0

감사합니다. 나는 내가 어떻게 이것을 놓쳤는 지 모른다. – mike29892

관련 문제