Add better explanation for background tasks
This commit is contained in:
@@ -596,10 +596,10 @@ async def test_create_post(client: TestClient):
|
|||||||
```
|
```
|
||||||
Unless you have sync db connections (excuse me?) or aren't planning to write integration tests.
|
Unless you have sync db connections (excuse me?) or aren't planning to write integration tests.
|
||||||
### 15. BackgroundTasks > asyncio.create_task
|
### 15. BackgroundTasks > asyncio.create_task
|
||||||
BackgroundTasks can [effectively run](https://github.com/encode/starlette/blob/31164e346b9bd1ce17d968e1301c3bb2c23bb418/starlette/background.py#L25) both blocking and non-blocking I/O operations.
|
BackgroundTasks can [effectively run](https://github.com/encode/starlette/blob/31164e346b9bd1ce17d968e1301c3bb2c23bb418/starlette/background.py#L25)
|
||||||
Since the API for sending these tasks will be the same (i.e. coroutines are not explicitly awaited),
|
both blocking and non-blocking I/O operations the same way it handles routes (`sync` functions are run in a threadpool, while `async` ones are awaited later)
|
||||||
it's preferable to use starlette's background tasks.
|
- Don't lie to the worker and don't mark blocking I/O operations as `async`
|
||||||
Don't use it for CPU intensive tasks.
|
- Don't use it for heavy CPU intensive tasks.
|
||||||
```python
|
```python
|
||||||
from fastapi import BackgroundTasks
|
from fastapi import BackgroundTasks
|
||||||
from pydantic import UUID4
|
from pydantic import UUID4
|
||||||
|
|||||||
Reference in New Issue
Block a user