필자는 원격 장치의 상태에 대한 세부 정보를 제공하는 콜백 2 개를 사용하여 원격 장치에 메시지를 보내야하는 상황 (모두 3 개가 파이썬 클래스의 함수 임)을 가지고 있습니다.이 상황을위한 설계 솔루션은 무엇입니까?
# callback when a app has completed downloaded on a remote device
def handleAppDownloadComplete():
#something
# callback when an app has restarted on a remote device
def handleAppRestart():
# app restart callback
def sendMessage(message):
// Do things like validation etc
sendMessageToRemoteDevice(message)
내 상황이
handleAppDownloadComplete 콜백이
2
) sendMessage 첨부() 동안 어느 시점에서이 handleAppRestart()가 호출되는 경우, sendMessage 첨부의 실행을 (정지이라고 1) 통화 sendMessage 첨부) handleAppDownloadComplete()가 콜백 될 때까지 기다린 후 sendMessage()를 다시 호출하십시오.나는 threading.events()를 사용해 보았지만, 이것은 매우 순환적인 것처럼 보입니다. 그리고 추가하기 위해 두 콜백은 타사 라이브러리에서 제공하므로 변경할 수 없습니다. 이 상황을 처리하는 더 나은 방법/디자인?
당신 말이 맞습니다. 구문을 변경했습니다. 실제로 파이썬 코드입니다. 동시에 2 개의 다른 언어로 코딩의 위험. 콜백을 추가/편집하는 방법을 찾을 수는 있지만 콜백 될 때는 변경할 수 없습니다. sendMessage (메시지)를 완전히 변경할 수 있습니다. – user1429322
Btw. Asyncio는 파이썬 3.3에서만 사용됩니다. – user1429322