MySQLを直接覗くとテーブルにレコードが追加されているのに、ブラウザからリロードしてみても取得される情報が前回と同じになってしまいます。
WEBプログラムの構成は以下のようになっています。
■フロント
FW: AngularJS
■API
言語: Python
FW: Flask
WAS: uWSGI
HttpServer: nginx(nginx→uWSGIへリバースプロキシ)
RDB: MySQL
おそらく、nginxかuWSGIのどちらかがキャッシュする設定になっており最新の状態を返却しないのではないかと考えていますが、自身で明示的にconfigファイルや起動オプションにキャッシュの設定はしていないため、どこが原因かはっきりとしません。
このような症状の場合に、どこが原因と考えられますでしょうか。
話としてはこのあたりに近い気がしたのですが、SQLAlchemyは使用していますか?
python - How to disable SQLAlchemy caching? - Stack Overflow
自分だったら、スーパーリロードしてみて、変化するかを確認します。
後は、フロント側から順に、httpのHeadリクエストの応答が、DB内容更新に追従しているかを確認してゆきます。
フレームワークを使ったことありませんので、細かいところは、他の方に譲りますが、『便利で超強力なWSGIサーバー uWSGI を使ってみよう - 檜山正幸のキマイラ飼育記』とか読むと、階層構造をブラウザで追うのもそれほど難しくなく見えます。
何かのヒントになれば幸いです。
MySQLのクエリキャッシュは無効であることを確認しました。
Variable_name | Value |
query_cache_limit | 1048576 |
query_cache_min_res_unit | 4096 |
query_cache_size | 1048576 |
query_cache_type | OFF |
query_cache_wlock_invalidate | OFF |