8000 Calling `async_task` from an async function · Issue #725 · Koed00/django-q · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Calling async_task from an async function #725
Open
@Alain1405

Description

@Alain1405

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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0