WYS*_*WYS 1 python google-app-engine
在谷歌应用引擎中使用任务队列有一些问题.我尝试过与此网站相同的操作: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)
Run Code Online (Sandbox Code Playgroud)
我只是添加这样的任务:
taskqueue.add(url='/worker')
Run Code Online (Sandbox Code Playgroud)
我真正想要的只是运行一段不会超时的代码.所以我读到我可以使用任务队列.但我似乎无法使其发挥作用.
默认情况下,任务队列将POST请求发送到映射到URL的任何处理程序(在您的case/worker中,应映射到CounterWorker).因此,您需要在CounterWorker方法中定义post方法.
class CounterWorker(webapp.RequestHandler):
def post(self):
def txn():
logging.info("bla")
db.run_in_transaction(txn)
Run Code Online (Sandbox Code Playgroud)
您的评论表明任务应该只运行1/s.您可以在queue.yaml配置文件中定义它.
此外,任务队列有10分钟超时,所以他们不会永远运行.要解决此问题,请尝试链接它们或使用延迟API.对于长时间运行的进程,后端API可能更适合.
归档时间: |
|
查看次数: |
1166 次 |
最近记录: |