Kay は appengine 環境での開発に便利なデコレーター関数を いくつか提供しています。これらのデコレーターは、 viewでよく使われそうな機能を提供します。
maintenance_check() デコレーターは Appengine データストアが メンテナンスモードの状態になっているかを確認し、メンテナンスモード の場合、メンテナンス画面にリダイレクトしてくれます。デフォルトは ‘_internal/maintenance_page’ という URL ルーティングエンドポイントに リダイレクトしますが、 endpoint という引数で指定することができます。
@maintenance_check
def my_view(request):
# ...
return response
retry_on_timeout() デコレーターを使うと データストアにアクセスする処理を 実行する間にデータストアのAPIタイムアウトが 起こった場合、retriesで指定された回数リトライを行う。 ラップされる関数は、複数回実行される可能性があるので、 複数回実行しても問題がないように 冪等 にしなければなりません。
@retry_on_timeout(retries=5)
def my_writer_func():
# Some datastore operation
return
auto_adapt_to_methods() デコレーターは、 他のデコレーターをラップするデコレーターです。 このデコレーターでラップされたデコレーターは、 self引数がない関数と同様に、 self引数が渡されるメソッドも適切に ラップすることができるようになります。
@auto_adapt_to_methods
def my_decorator(func):
def new_func():
# ...
return
return new_func