Open
Description
I use Django Channels to manage websockets. I have configured Django-Q to use Django ORM as a broker.
In the WS message handler I store some data in DB, then I want to perform some async tasks, here is some sample code
async def receive(self, text_data):
logging.debug(f"Received WS message: {text_data}")
new_answer = Answer(
answer=answer,
...
)
await new_answer.asave()
async_task(add_answer_to_vectorstore, new_answer.id)
On the async_task
call I get You cannot call this from an async context - use a thread or sync_to_async.
. I could not find any instance of such error for Django-Q but I suspect it's because of using Django ORM as a broker (model.save() cannot be call within an async context, we should use .asave as in my code).
Has anyone else stumbled upon this? Any solution?
Metadata
Metadata
Assignees
Labels
No labels