2013-01-22 9 views
7

httpリクエストからappengineコンテキストを外さなくてもGAEデータストアにアクセスできますか? 私は、アプリケーションエンジンコンテキストにアクセスできない別のスレッドでデータストアにアクセスしたいと考えています。これは可能ですか?または私は回避策を見つけることを試みるべきですか?働く 言語イムはところで行くです...httpリクエストなしでGAEデータストアにアクセスできますか?

EDIT:イムは、複数のスレッドでチャットサーバを構築するので、私は必要なレベルまで、すべてのAppEngineのコンテキストを渡す使用することはできません詳細情報 理由があります。メインポートのリスニングスレッドが開始されると、コンテキストの1つのインスタンスとともに、スレッドの持続時間の間、そのコンテキストが保持されます。しかし、スレッドが開始された後は、ポートリスナーがすでに開始されているため、サーバーへの接続がさらに多くなり、コンテキストを通過することはありません。なぜなら、クライアントの読み取りハンドラにメッセージを記録できるようにする必要があるからです。 ありがとうございます

答えて

1

データストアへのアクセスにはappengine.Context(したがって要求)が必要になると思います。幸いにも、リクエストはコードのどの部分にも必要なものを渡すのに十分なほど簡単です。

appengine_internalがコンテキストで何を行うのかわかりませんが、コンテキスト自体は必要に応じて前後に渡すことができます。これはあなたのためにはうまくいかないと思うなら、コード例は良い次のステップでしょうか?

3

これはあなたが探しているものであるかどうかはわかりませんが、GAEではremote apiが提供されており、サービスとやりとりすることができます。私はPythonとJavaのバージョンのために用意されていると確信しています。

+0

これは、Pythonを使用していた場合にはうまくいくようです...残念ながら、私のサーバーの残りはGoにあり、外見上、Goツールはまだこの機能を持っていないようです... –

+0

あなたが勇気があるなら、[gae-init](http://gae-init.appspot.com)を使ってGoウェブアプリケーションのロジックをPythonに書き直すことができます。 – topless

関連する問題