在Google App Engine后端上连续运行功能

时间:2014-01-28 15:07:37

标签: python google-app-engine

我希望连续运行或每15分钟运行一次。由于该函数需要更多时间才能完成,我需要在后端运行它(不能使用前端)。目前,我在后端运行该进程,但可能不是最好的方法。这是我的backend.yaml文件:

backends:
- name: mainframe-backend
  start: test.py
  instances: 1
  class: B2

我在test.py中的代码如下:

while True:
    time.sleep(X)
    runcode()

我不认为While循环是最好的方法。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

您可能需要考虑使用task queue和/或cron tasks来执行此项工作。有一些优点:

  • 自动重试失败的尝试,有退避/限制 - 您可以自己编写,但为什么要重新发明轮子?
  • 对于任务队列,当没有工作要做时,没有任何工作正在运行(并向您收费)
  • 用于配置队列和排队工作的简单且文档化的API - 您可以询问有关这些的问题,有人可以回答这些问题

如果您担心请求时间限制(任务队列处理程序为10米),您可以send tasks to backends解除此限制。

所以一般来说,我会问你是否有可能将你的工作流程重构为可以利用所提供工具的东西,这样你就不必浪费精力重新发明它们,或者浪费后端处理时间(和你的钱!)while True