在Google App Engine开发服务器中结合--backends和事务任务队列时遇到问题?
我在把一个比较大的 App Engine 应用的一些功能转移到后台时,突然发现我在使用事务的地方出现了很多错误,当时我是在通过 dev_appserver.py 运行应用。
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 是“单线程”特性造成的吗?有没有什么解决办法?