mirror of https://github.com/encode/starlette.git
Document the lifespan event handler parameter (#1110)
Co-authored-by: Thomas Grainger <tagrain@gmail.com>
This commit is contained in:
parent
537ab6afd1
commit
8a3e41a544
|
@ -37,6 +37,31 @@ registered startup handlers have completed.
|
|||
The shutdown handlers will run once all connections have been closed, and
|
||||
any in-process background tasks have completed.
|
||||
|
||||
A single lifespan asynccontextmanager handler can be used instead of
|
||||
separate startup and shutdown handlers:
|
||||
|
||||
```python
|
||||
import contextlib
|
||||
import anyio
|
||||
from starlette.applications import Starlette
|
||||
|
||||
|
||||
@contextlib.asynccontextmanager
|
||||
async def lifespan(app):
|
||||
async with some_async_resource():
|
||||
yield
|
||||
|
||||
|
||||
routes = [
|
||||
...
|
||||
]
|
||||
|
||||
app = Starlette(routes=routes, lifespan=lifespan)
|
||||
```
|
||||
|
||||
Consider using [`anyio.create_task_group()`](https://anyio.readthedocs.io/en/stable/tasks.html)
|
||||
for managing asynchronious tasks.
|
||||
|
||||
## Running event handlers in tests
|
||||
|
||||
You might want to explicitly call into your event handlers in any test setup
|
||||
|
|
Loading…
Reference in New Issue