【发布时间】:2011-08-26 12:39:03
【问题描述】:
我正在使用deferred 将任务放入AppEngine 应用程序的默认队列中,类似于this approach。
我用每 5 秒更改一次的时间戳命名任务。在此期间,许多同名的队列被调用,导致TaskAlreadyExistsError 这很好。问题是,当我检查“任务队列 API 调用”的配额时,每次调用都会增加,而不仅仅是那些实际被放入队列的调用。
我的意思是,如果您查看配额:Task Queue API Calls: 34,017 of 100,000 并与实际队列调用比较:/_ah/queue/deferred - 2.49K
这是处理队列的代码:
try:
deferred.defer(function_call, params, _name=task_name, _countdown=int(interval/2))
except (taskqueue.TaskAlreadyExistsError, taskqueue.TombstonedTaskError):
pass
我想这就是它的工作方式。有没有解决配额问题的好方法?我可以使用memcache存储task_name并检查除了上述try/catch之外是否添加了任务?或者有没有办法在不使用任务队列 API 调用的情况下检查任务是否已经存在?
【问题讨论】:
标签: python google-app-engine task-queue