はじめに
MH ソフトウェア & サービスが開発・公開している、Webアプリケーションサーバ AiRの便利かな?と思われるコードの紹介です。
Webアプリケーションサーバ AiRはPython、Tornado(Webフレームワーク、Webサーバ)、JavaScript、その他のモジュールで構成されています。
Tornadoのioloopは便利です。
Tornadoを起動するPythonスクリプトでバックアップ処理の時刻を定期的に監視したい場合、下記のスクリプトを埋め込みます。
# NOTE: Oh! It's best!!! I got loop!!
_check_backup()
tornado.ioloop.IOLoop.instance().start()
def _check_backup():
"""Check backup timing.
:sig: () -> Nne
"""
# なにかのバックアップ処理
next_start: float = time.time() + 10.0
ioloop = tornado.ioloop.IOLoop.current()
ioloop.add_timeout(deadline=next_start, callback=_check_backup)
これで10秒ごとに_check_backup()が実行されます。