Google App Engine for Go を利用してWebサービスを開発しています。
Datastoreへのアクセスを減らすために、
リクエスト毎にDatastoreにクエリをとばすのではなく、
init関数内で読み込んでおきそれを利用しようと考えています。
しかしながら、Datasotreへのアクセスに利用する
appengine.Contextの取得(func NewContext(req *http.Request) Context)をするのに
http.Requestが必要なため、httpリクエストがあった時しか
Datastoreへのアクセスができないので困っています。
対処法として、
データを読み込んだかをbool型のグローバル変数で記録して、
httpリクエストがあった際にこれをチェックして
まだ読み込まれていなかったらDatastoreから読み込む、
という方法を考えたのですが、
httpリクエストをハンドルしている関数ひとつひとつに
このためのif文を書き込むというのがスマートでなく感じたのと
読み込んでいないときに同時にアクセスがあった場合に
二重に読み込まれるなど危ない事になりそうだと考え
他に何か方法がないかと考えている次第です。
何か代替する方法はありますでしょうか。
皆様の知識をお借りしたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/04 12:15
2015/08/04 14:58 編集
2015/08/12 11:40