2012-02-28 15 views
3

私は同じコードブロックで次々と3つの異なるapi呼び出しを行うPythonアプリケーションを持っています。これらの呼び出しを非同期で実行し、すべてが完了したらアクションを実行したいと思います。GAE対応の非同期操作はPythonでですか?

カップルノート:非同期アクションに関する

  • 他の回答には、ツイストとセロリのようなフレームワークを指しているが、私はGAEのためのweb2pyのアプリケーションを構築していますので、これらのデーモンベースのフレームワークではありませんオプションAFAIK。
  • apiラッパーライブラリをさまざまなAPIに使用していますので、http要求レベルではなくスレッドレベルで実装できる非同期ソリューションがあるのでしょうか?
+1

:http://code.google.com/appengine/docs/python/urlfetch/ asynchronousrequests.html –

+0

Amy-それは最高/唯一の答えかもしれません - 私はあなたにいくつかの信用を与えることができるように答えを行います。 – Yarin

+0

偉大な、私はそうした。 –

答えて

3

Pythonは非同期URLが役立つかもしれないの呼び出しを、取得サポート:http://code.google.com/appengine/docs/python/urlfetch/asynchronousrequests.html

あなたはそれが役立つかどう非同期URLは、呼び出しを取得することができます
+0

これは、非同期処理の完了を処理する唯一の方法である可能性があります。 – Yarin

+0

作成したワーカー・ページに対する非同期URLフェッチを想定すると、実際に並行して実行されることを確認するために、 http://code.google.com/appengine/docs/python/python27/newin27.html#Concurrent_Requests – Raven

1

あなたが勇気があるなら、実験的な新しいDB API、NDBを試してみてください。これは、データストア+ URLフェッチを扱うための非同期APIを持っています。あなたが非同期的にやりたいと思っていたものなら、あなたは幸運です。

+0

これはデータストアとは何の関係もありません。APIの外側にあります。 – Yarin

1

Task Queuesが表示される場合があります。応答性についての約束はありませんが、you can definitely control how many tasks are started per secondです。

+0

私の場合、完了時にアクションを実行する必要があります。タスクキューのコールバック関数やリスナー機能は表示されません。しかし、彼らは他の場所で役に立つかもしれないように見え、私はそれらについて知らなかったので、ありがとう。 – Yarin

+0

@ヤリンあなたのタスクでデータストアに結果を書き込ませることができます。その後、メインコードは完了をポーリングすることができます。 – Raven

関連する問題