やり過ぎです。グーグルアプリエンジンログをダウンロードしてsqliteに変換できるツールがあります。
http://code.google.com/p/google-app-engine-samples/source/browse/trunk/logparser/logparser.py
このツールを使用すると、タスク要求と通常の要求の両方のcpmusdがすべて一緒にダウンロードされます。毎日のログを別のsqliteファイルに保存し、必要なだけ分析を行うことができます。
タスクのコストを元の要求に関連付けるという点で。このツールでダウンロードされたログデータには、logging
モジュールの完全な出力が含まれています。
- したがって、元のリクエストに生成IDを記録するだけで済みます。
- IDをタスクに渡します。
- 受信したIDをタスクリクエストに再度記録します。
- idを介して通常とタスクリクエストのペアを検索します。
例えば:
# in org request
a_id = genereate_a_random_id()
logging.info(a_id) # the id will be included
taskqueue.add(url='/path_to_task', params={'id': a_id})
# in task request
a_id = self.request.get('id')
logging.info(a_id)
編集1
通常のリクエスト+タスクリクエストのコストを見積もる別の方法があると思います。秘訣は、非同期タスクを同期するように変更することです(コストが同じであると想定します)。私はそれを試しませんでしたが、試す方がはるかに簡単です。
# in org request, add a variable to identify debug
debug = self.request.get('DEBUG')
if debug:
self.redirect('/path_to_task')
else:
taskqueue.add(url='/path_to_task')
したがって、DEBUGパラメータを使用して通常のリクエストをテストしている間。最初に通常のリクエストを処理し、次に通常のリクエストに対してx-appengine-estimated-cpm-us-dollarsを返します。後で、テストクライアントを相対タスクリクエストにリダイレクトし(タスクリクエストは、通常のリクエストとしてURLクライアントを介してアクセスおよびトリガーすることもできます)、タスクリクエストに対してx-appengine-estimated-cpm-us-dollarsを返します。それらを単純に足し合わせて、総コストを得ることができます。