Sina App Engine(SAE)入门教程(10)- Cron(定时任务)使用

参考资料

Cron能干什么?

cron 可以定时的触发一个脚本,在sae上最大的频率是一分钟一次。你可以用其来完成自己需要的业务逻辑,例如定期的抓取某些网页完菜信息的采集,定期的触发一个清理数据库的脚本等等。

Cron怎么用?

Cron作业只能调用应用默认版本的URL,其添加和删除都需要通过代码发布完成。例如你的默认版本是1,那么你在版本2的config.yaml设置的cron将是无效的,不会被执行

操作方法为:编辑 APPNAME/1/config.yaml (APPNAME是你的应用名,1代表版本号),输入cron作业的描述。目前SAE平台支持 使用类自然语言或者unix crontab语言描述cron任务。类自然语言示例:

name: APPNAME
version: 1
accesskey: abc
cron:
    - description: cron test
          url: mycron/test.php
          schedule: $2 day of october 19:00
          timezone: Beijing
    - description: another cron test
          url: mycron/another_test.php
          schedule: every 10 mins
          timezone: Beijing

unix crontab 语法示例:

name: APPNAME
version: 1
accesskey: abc
cron:
    - description: cron test
          url: mycron/test.php
          schedule: 00 19 2 10 *
    - description: another cron test
          url: mycron/another_test.php
          schedule: */10 * * * *

然后上传应用代码.

以上config.yaml定制了两个cron作业,分别是代码目录mycron/下的test.php和another_test.php。 校时时区是北京时间,而定时分别是每年10月2号的19:00运行和每10分钟运行。

具体使用的实例

在cron目录下创建一个cron.php文件,文件内容为:

<?php
echo "hello lazy!";

设置config.yaml,修改如下:

---
name: lazydemo
version: 1
...
cron:
    - description: cron test for tech
          url: cron/crom.php
          schedule: every 1 mins
          timezone: Beijing

上传代码,那么 此时在sae的管理面板上我们应该就能看到刚才设置的cron了。