From e345de817e87f3ce04589f722fbec1b353923970 Mon Sep 17 00:00:00 2001 From: My <84212641+My-MC@users.noreply.github.com> Date: Sat, 13 Aug 2022 23:29:03 +0900 Subject: [PATCH] Add Japanese translation for - docs/ja/docs/advanced/events.md --- docs/ja/docs/advanced/events.md | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 docs/ja/docs/advanced/events.md diff --git a/docs/ja/docs/advanced/events.md b/docs/ja/docs/advanced/events.md new file mode 100644 index 0000000000..b31953f04b --- /dev/null +++ b/docs/ja/docs/advanced/events.md @@ -0,0 +1,47 @@ +# イベント: 起動時 - シャットダウン時 + +アプリケーションの起動前やシャットダウン時に実行する必要のあるイベントハンドラ(関数)を定義することができます。 + +これらの関数は、 `async def` または通常の `def` で宣言することができます。 + +!!! warning "警告" + メインアプリケーションのイベントハンドラのみが実行され、[サブアプリケーション - マウント](./sub-applications.md){.internal-link target=_blank}では実行されません。 + +## `startup` イベント + +アプリケーションが起動する前に実行されるべき関数を追加するには、イベント `"startup"` と共に宣言します。 + +```Python hl_lines="8" +{!../../../docs_src/events/tutorial001.py!} +``` + +この場合、`startup`イベントハンドラ関数は、いくつかの値でアイテムの "データベース"(単なる`dict`)を初期化します。 + +イベントハンドラ関数は、複数追加することができます。 + +そして、すべての `startup` イベントハンドラが完了するまで、アプリケーションはリクエストを受け取り始めません。 + +## `shutdown` イベント + +アプリケーションがシャットダウンするときに実行されるべき関数を追加するには、イベント `"shutdown"` と共に宣言します。 + +```Python hl_lines="6" +{!../../../docs_src/events/tutorial002.py!} +``` + +ここでは、`shutdown` イベントハンドラ関数が `"Application shutdown"` というテキスト行をファイル `log.txt` に書き出します。 + +!!! info "情報" + `open()`関数の中の、`mode="a"` は「追加」を意味し、そのファイルの前の内容に上書きすることなく、あるものの後に行を追加します。 + +!!! note "技術詳細" + この場合、ファイルとインタラクトする標準的なPythonの `open()` 関数を使用していることに注意してください。 + + つまり、I/O (入力/出力)を伴うため、ディスクに書き込まれるのを「待つ」必要があります。 + + しかし、`open()` は `async` と `await` を使えません。 + + そのため、イベントハンドラ関数を `async def` ではなく、標準の `def` で宣言します。 + +!!! info "情報" + これらのイベントハンドラについて、詳しくは Starletteのイベントのドキュメントをご覧ください。