【发布时间】:2015-08-05 10:49:24
【问题描述】:
假设我有一个运行一个小时的脚本。它所做的只是睡一个小时,并在该小时结束时更改数据存储区中的某些内容。
def task(keyname):
time.sleep(3600)
q = Item.all()
item = q.filter("keyname = ", "%s" % keyname).get()
item.value += 1
item.put()
实现这一目标的最佳方法是什么?
cron 文档说“由 cron 调用的 HTTP 请求最多可以运行 10 分钟,但受到与其他 HTTP 请求相同的限制。”我假设这意味着运行超过十分钟的 cron 任务将会中断。
我查看了任务队列文档,但我不想将这些任务一个接一个地排队。我希望它们同时发生。
我正在考虑添加一个计数器属性并每分钟运行一次任务而不是休眠:
def task(keyname):
q = Item.all()
item = q.filter("keyname = ", "%s" % keyname).get()
if item.counter == 60:
item.value += 1
item.put()
else:
item.counter += 1
item.put()
但是访问数据库的次数太多了。
那么,有人有更聪明的解决方法吗?
【问题讨论】:
标签: python google-app-engine cron