グローバル変数は開放されます
アキノチューブ では、10分間隔で各カテゴリを巡回し、新しいエントリがアップロードされていないか確認する CronJob が動作しています。 ここで、更新したカテゴリのインデックス番号を保持するのにグローバル変数を使ってみたのですが・・・
# This is bad example index = 0 class UpdateHandler(RequestHandler): """ 10分間隔で CronJob がアクセス """ def get(self): global index # # index からカテゴリを取得 # # インクリメント index = index + 1
開発用サーバでは問題なく動作してしまうのですが、本サーバでは一定時間が経過するとグローバル変数が開放されます。 したがって、再度アクセスした時には index = 0 に初期化された状態になっています。
やはり、複数のリクエストにまたがって値を共有したい場合は、memcache やデータストアの Model に値を保持するのが定石法のようです。