Принудительный запуск асинхронных BackgroundTasks, как если бы они были синхронизированы внутри, с помощью run_in_threadPython

Программы на Python
Ответить
Anonymous
 Принудительный запуск асинхронных BackgroundTasks, как если бы они были синхронизированы внутри, с помощью run_in_thread

Сообщение Anonymous »

Мне хотелось бы запускать async_task так, как если бы он не был асинхронным, чтобы под капотом не запускался тот же процесс, что и fastapi, блокирующий цикл событий, а запускался concurrenlty в другом потоке с помощью run_in_threadpool() . Как мне это сделать?
from fastapi import FastAPI
app = FastAPI()

async def async_task():
import asyncio
import time
await asyncio.sleep(1) # simulate sequential non-blocking code
time.sleep(2) # simulate sequential blocking code
await asyncio.sleep(3) # simulate sequential non-blocking code
time.sleep(4) # simulate sequential blocking code

@app.get("/")
async def run_task(tasks: BackgroundTasks):
tasks.add_task(async_task)


Подробнее здесь: https://stackoverflow.com/questions/791 ... ood-with-r
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»