在 Google App Engine 开发服务器中组合 --backends 和事务任务队列时出现问题?

发布于 2024-12-27 18:40:55 字数 583 浏览 2 评论 0原文

我正在将相当大的 App Engine 应用程序上的一些功能移动到后端,突然在通过 dev_appserver.py 运行时使用事务的地方开始出现许多错误:

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

我意识到只有当我通过以下方式运行应用程序时才会出现问题 : --后端。我猜测问题的发生是因为我有一个事务使用“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 的“单线程”性质的结果?有解决办法吗?

I was moving some functionality on a fairly sizeable App Engine application to a backend, and suddenly started getting a number of errors in places where I was using transactions while running via dev_appserver.py:

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

I realized the problem only occurs when I run the app via --backends. And I'm guessing the problem is occurring because I have a transaction that adds a task to a queue using "transactional=True", i.e.:

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)

Is this a result of the 'single threaded' nature of dev_appserver? Is there a work around for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

缱倦旧时光 2025-01-03 18:40:55

根据 Google 文档此处,您无法命名队列 如果您的任务是事务性的,则事务性任务只能添加到默认队列!

according to google doc here, you can not name the queue if your task is transactional, the transaction task only can be added to default queue!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文