ASGI 'lifespan' protocol appears unsupported.

djangoで作ったプロジェクトをデプロイしたとき際、logに以下のinfoが表示された。

INFO
[2024-07-06 18:52:18 +0900] [86] [INFO] Waiting for application startup.
INFO
[2024-07-06 18:52:18 +0900] [86] [INFO] ASGI 'lifespan' protocol appears unsupported.
INFO
[2024-07-06 18:52:18 +0900] [86] [INFO] Application startup complete.

この"ASGI 'lifespan' protocol appears unsupported."は無視して構わないが、とりあえず表示されないようにしたい。

mysite/
├mysite/
|    └#settings.pyなど
├myapp.py/
├manage.py
└#その他ファイル

の様なディレクトリ構造でのDjangoプロジェクトだとする。

settings.pyが含まれているmysite/ディレクトリにworkers.pyを作成し、以下のコードを記載する。

# mysite/workers.py
from typing import Any, Dict

from uvicorn.workers import UvicornWorker as BaseUvicornWorker


class UvicornWorker(BaseUvicornWorker):
    CONFIG_KWARGS: Dict[str, Any] = {"loop": "auto", "http": "auto", "lifespan": "off"}

そしてgunicornを用いたプロジェクトの実行コマンドを下記のようにする。

python -m gunicorn vtoh.asgi:application -k mysite.workers.UvicornWorker

これで "ASGI 'lifespan' protocol appears unsupported." が表示されなくなる。

この記事が気に入ったらサポートをしてみませんか?