Django频道。是否可以将发送/接收消息组合为一种方法?

时间:2020-09-14 07:37:03

标签: django django-channels

我的代码从通道层收到一些消息后,我需要处理一些复杂的逻辑:通过websocket向客户端发送请求,等待响应,发送另一个请求,再次等待,然后通过通道发送回响应。

现在,我发现的唯一方法是将所有逻辑拆分为一堆较小的方法,并使用锁来同步所有逻辑。它正在工作,但看起来很丑。

有可能写类似的东西吗?

async def complex_logic(self, data):
    with self.lock.acquire():
        await self.send_ws_request1(data)
        resp1 = await self.get_ws_response1()
        data2 = self.do_something_with_resp(resp1)
        await self.send_ws_request2(data)
        resp2 = await self.get_ws_response2()
    await self.send_resp_to_channels(resp2)

0 个答案:

没有答案