@asyncio.coroutine
def listener():
while True:
message = yield from websocket.recieve_message()
if message:
yield from handle(message)
loop = asyncio.get_event_loop()
loop.run_until_complete(listener())
สมมติว่าฉันใช้ websockets กับ asyncio นั่นหมายความว่าฉันได้รับข้อความจาก websockets
และเมื่อฉันได้รับข้อความ ฉันต้องการจัดการกับข้อความ แต่ฉันสูญเสียสิ่งที่ไม่ตรงกันทั้งหมดด้วยโค้ดของฉัน เนื่องจาก yield from handle(message)
กำลังบล็อกอยู่อย่างแน่นอน... ฉันจะหาวิธีทำให้ไม่บล็อกได้อย่างไร เช่น จัดการหลายข้อความพร้อมกัน ไม่ต้องรอให้จัดการข้อความก่อนจึงจะสามารถจัดการข้อความอื่นได้
ขอบคุณ.
handle
อาจเป็นงานแยกกันด้วย รหัสของคุณไม่สมบูรณ์ ดังนั้นจึงไม่ใช่เรื่องง่ายที่จะได้สิ่งที่คุณต้องการจริงๆ - person Andrew Svetlov   schedule 02.12.2015