1
我有一個django應用程序在服務器上執行一些計算,最多可能需要30秒。我正在嘗試使用Django頻道創建一個進度指示器。使用Django頻道獲取進度指標
我的設置是根據本教程: https://realpython.com/blog/python/getting-started-with-django-channels/
一切工作作爲迄今爲止的預期。我通過web套接字提交任務。這是我的消費者接收的,它調用其他方法來完成任務,然後通過websocket返回結果。
但是,當我嘗試從同一個消費者發送多條消息時,所有消息都會在最後到達,而不是在發送時到達。
這是我的消費者的代碼:
@channel_session
def ws_receive(message):
data = json.loads(message['text'])
reply_channel = message.reply_channel.name
Channel(reply_channel).send({
"text": json.dumps({'progress': 'Starting Work'})
})
# calls outside method to do work
result = perform_calculations(data, reply_channel)
Channel(reply_channel).send({
"text": json.dumps({'progress': 'Finished Work','result':result })
})
在本例中,我的前端接收「起始工作」,並在同一時間「完成的工作」的消息,即使存在之間有30第二間隙他們正在生成。
有沒有辦法讓這些消息實時到達?