2012-01-19 2 views
4

私はバックエンドにかなりかなりApp Engineアプリケーションの一部の機能を動かし、そして突然、私はdev_appserver.py経由で実行中のトランザクションを使用していた場所でエラーの数を取得して開始されました:Google App Engineのdev-serverで--backendsタスクとtransactionalタスクキューを組み合わせる際の問題?

ApplicationError: ApplicationError: 10001 Transaction(<handle: 0x1, app: "dev~MYAPPNAME", >) not found 

私が実現問題は--backends経由でアプリケーションを実行するときにのみ発生します。私は「transactional=True」を使用してキューにタスクを追加し、トランザクションを持っているので、私はすなわち、問題が発生している推測している。:

def txn(): 

    # make model changes 

    taskqueue.add(url='/models/processupdate', params=my_params, transactional=True, queue_name='not_the_default_q') 
    db.run_in_transaction(txn) 

これはdev_appserverの「シングルスレッド」自然の結果ですか?このための回避策はありますか?

+0

スタックトレースにエラーがありますか?あなたはそれで質問を修正できますか? –

+0

残念ながら、私はちょうど上記のエラーがあります。 –

答えて

0

google doc hereによると、あなたのタスクがトランザクションの場合は名前を付けることはできません。トランザクションタスクはデフォルトキューにのみ追加できます。

+0

どこがこれを見ますか?私はそのページでそれを見つけることができません。しばらくの間、トランザクションキュー(名前付き)を使用してきました。バックエンドを使ったコードを導入したときだけ問題になりました。 –

+0

最後の文を読んでください:transactional = False このメソッドがdb.run_in_transaction()の内部で呼び出された場合に関連します。このトランザクションタスクは、囲むデータストアトランザクションが正常にコミットされた場合にのみ追加されるべきであることを示します。この場合、このタスクにはユーザーが指定した名前を付けることはできません。 – Allen

+0

そうですが、キュー名ではなくタスク名を参照しています:http://code.google.com/appengine/docs/python/taskqueue/overview.html#Task_Names –

関連する問題