3

我需要帮助在 GAE (python) 中实现一个简单的 cron 作业。

根据我从appengine文档中了解到的,我在应用根目录下做了一个cron.yaml文件,内容如下:

cron:
- description: blah blah
  url: /crontask
  schedule: every 1 minute

而我的 app.yaml 文件内容如下:

application: template-123
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: template-123.app

我将我所有的应用程序代码(cron 和其他部分)制作成一个文件“template-123.py”。在代码中,我通过以下方式实现 cron:

class CronTask(Handler):

    def  post(self):
        i=25
        number = Birthday(day = i)
        number.put()

我告诉代码将这个类用于 cron,方法是:('/crontask', CronTask)。

但是,没有新条目上传到数据存储区(我相信它们应该如此)。而且我知道我访问数据存储的方式不是问题,因为当我尝试手动执行相同的操作(将条目上传到应用程序的非 cron 部分中的数据存储)时,它会以适当的方式返回结果。

所以我需要一些指导来了解我可能做错了什么或遗漏了什么?是否必须对 yaml 文件进行更多更改或添加一些其他库?

4

2 回答 2

8

Cron 使用 GET,而不是 POST。将您的更改def post(self)def get(self)(或其他任何合适的)。

于 2012-06-09T17:43:15.530 回答
2

通常 python 文件以 py 结尾。处理程序应该说

script: template-123.py

首先在本地测试您的 cron 作业。您应该能够访问 localhost:8000/_ah/admin,然后单击左侧的 Cron Jobs 链接。它应该列出您所有的 cron 作业,并且您应该能够使用页面上的链接来测试它们。首先在 dev_appserver 上调试。

于 2012-06-08T02:16:24.093 回答