0

定期的に取得/解析したいフィードが 10,000 件以上あるとします。期間が 1 時間だとすると、24x10000 = 240,000 フェッチになります。

labs Task Queue API の現在の 10k の制限により、フェッチごとに 1 つのタスクを設定することができなくなります。では、これをどのように行うのでしょうか?

更新: RE: タスクごとに nurl をフェッチする - ある時点でリクエストごとに 30 秒のタイムアウトを指定すると、これは上限に達します。とにかくそれを並列化して、各タスクキューが一連の非同期並列フェッチを開始し、それぞれが完了するまでに30秒もかかりませんが、一緒にするとそれ以上かかる場合があります。

4

3 に答える 3

3

非同期 urlfetch API は次のとおりです。

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

妥当な期限を設定した一連のリクエスト (1 つのリクエストがタイムアウトした場合でも、他のリクエストを処理する時間があるように、タイムアウトの下に余裕を持たせてください)。次に、それぞれを順番に待機し、完了すると処理します。

私は GAE でこの手法を使用したことがないので、自明ではない落とし穴を自分で見つける必要があります。残念ながらselect()、いくつかのリクエストのうち最初のリクエストが完了するのを待つためのスタイル コールが API にないようです。

于 2009-07-18T23:28:57.370 に答える
2

タスクごとに 2 つのフェッチ? 3?

于 2009-07-18T22:10:25.627 に答える
0

フェッチをグループ化して、1 つのフェッチをキューに入れる代わりに、たとえば 10 回のフェッチを行う作業単位をキューに入れます。

于 2009-07-18T22:16:01.560 に答える