gpt4 book ai didi

python - 谷歌应用引擎任务队列

转载 作者:太空宇宙 更新时间:2023-11-04 07:10:26 25 4
gpt4 key购买 nike

在谷歌应用引擎中使用任务队列时遇到一些问题。我尝试做与本网站相同的事情: https://developers.google.com/appengine/docs/python/taskqueue/overview-push

但似乎我的任务从未执行过,我得到了这个错误:

警告 2012-11-25 15:29:21,258 taskqueue_stub.py:1978] 任务 task1 无法执行。此任务将在 12.800 秒后重试

除以下代码外,代码基本相同:

class CounterWorker(webapp.RequestHandler):
def init(self): # should run at most 1/s
def txn():
logging.info("bla")
db.run_in_transaction(txn)

我只是像这样添加任务:

taskqueue.add(url='/worker')

我真正想要的只是运行一段不会超时的代码。所以我读到我可以使用任务队列。但我似乎无法让它发挥作用。

最佳答案

默认情况下,任务队列会向映射到 URL 的任何处理程序发送 POST 请求(在您的例子中是/worker,它应该映射到 CounterWorker)。因此,您需要在 CounterWorker 方法中定义一个 post 方法。

class CounterWorker(webapp.RequestHandler):
def post(self):
def txn():
logging.info("bla")
db.run_in_transaction(txn)

您的评论表明任务应该只运行 1/s。您可以在 queue.yaml config file 中定义它.

此外,任务队列有 10 分钟的超时时间,因此它们不会永远运行。要纠正此问题,请尝试将它们链接起来或使用 deferred API .对于长时间运行的进程,backends API可能更合适。

关于python - 谷歌应用引擎任务队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13552538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com