我需要帮助在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()
我通过声明:('/ crontask',CronTask)告诉代码将此类用于cron。
但是没有新条目上传到数据存储区(我认为应该是这样)。而且我知道我访问数据存储的方式不是问题,因为当我尝试手动执行相同的操作(将条目上传到应用程序的非cron部分中的数据存储)时,它会返回相应的结果
所以我需要一些指导,说明我可能做错了什么或错过了什么?是否必须对yaml文件进行一些更改或添加一些其他库?
答案 0 :(得分:8)
Cron使用GET,而不是POST。将您的def post(self)
更改为def get(self)
(或其他任何合适的内容)。
答案 1 :(得分:2)
通常python文件以py结尾。处理程序应该说
script: template-123.py
首先在本地测试您的cron作业。您应该能够访问localhost:8000 / _ah / admin,然后单击左侧的Cron Jobs链接。它应该列出你所有的cron作业,你应该能够通过页面上的链接测试它们。首先在dev_appserver上进行调试。