sae的定时执行任务

来源:互联网 发布:单片机与电脑串口通信 编辑:程序博客网 时间:2024/05/16 16:15

Cron

服务概述

Cron服务是SAE为开发者提供的分布式计划任务服务,用来定时触发开发者的特定动作,满足比如定时计算排行榜等需求。

Cron的执行是以HTTP方式触发的,触发后真正执行的是用户在应用的HTTP的回调函数。Cron服务是分布式环境部署的,具有高可靠性,多点之间相互隔离且同时触发,并且通过分布式锁进行选举并最终由一个健康节点执行。

Cron的应用场景主要是让用户可以在指定的时间执行一些计划任务。

  • 每隔一定时间执行,如每隔2个小时执行1次。
  • 在某个特定时间点执行,如每周二晚上9:10执行。

Cron服务支持HTTP基础认证,用户可以设置用户名和密码来进行控制访问。

开发者可以在应用的配置文件 config.yaml 中来添加Cron。Cron的执行状态可在应用的管理界面 服务管理>Cron 中查看。

服务限制

  • Cron任务执行因为是以HTTP方式(GET),所以运行时间有上限,不得超过1800秒;如果用户有超过1800秒的任务需要定时触发,可以将其分解成多个Cron,或者将任务放入TaskQueue或者DeferredJob来异步的执行。
  • Cron任务执行存在一定的时间误差,最大不超过10秒。
  • Cron任务不分应用版本,只对默认版本生效,当切换代码默认版本时Cron会重新配置,切换成当前默认版本下的Cron配置。
  • 每个应用最多32条Cron任务。
  • Cron任务的间隔的最小时间衡量单元是分钟。
  • Cron支持设定时间区间,比如只在上午10点到下午5点间运行,或者只在1月24日至3月16日运行。
  • 多个Cron的url不能完全相同,如果多个Cron中使用了相同的url,后面的Cron会覆盖前面的Cron。开发者可以通过对url添加一些无用的参数如”&cron=1”来对相同的url加以区分。
  • 普通应用Cron的并发限制为12。同一时间最多只能有12个Cron任务执行,多出的任务将不能被执行。

如何配置

  • 添加Cron:

    编辑config.yaml文件中,增加Cron段,例如:

    name: crontestversion: 1cron:- description: cron_test  url: /cron/make  schedule: "*/5 * * * *"

    上面的示例添加了一个Cron任务, 该任务每5分钟执行 http://crontest.sinaapp.com/cron/make 一次。

  • 删除Cron:

    删除config.yaml中对应的Cron描述段即可。

  • 语法字段含义

    • url

      Cron任务的url。例如 /relative/url/to/cron 。

    • schedule

      任务描述,也就是何时执行这个Cron,支持unix crontab语法。例如:

      # 每天00:05分执行"5 0 * * *"# 每月1号的14:15分执行"15 14 1 * *"# 每个工作日的晚上10点执行"0 22 * * 1-5"# 每分钟执行一次"*/1 * * * *"

      unix Crontab的语法形式如下:

      *     *     *   *    *-     -     -   -    -|     |     |   |    ||     |     |   |    +----- day of week (0 - 6) (Sunday=0)|     |     |   +------- month (1 - 12)|     |     +--------- day of        month (1 - 31)|     +----------- hour (0 - 23)+------------- min (0 - 59)

      如果某一项设置了多个参数,可以用“,”隔开,例如3,4,5,6这样。 如果是几个连续的数字构成的参数,可以用“-”把首尾相连,例如3-6。

      具体的语法规则可以参考man手册, man 5 crontab 。

    • description

      可选。任务的说明,默认为空。

    • timezone

      可选。默认为Beijing,目前支持:Beijing, NewYork, London, Sydney, Moscow, Berlin

    • login

      可选。HTTP基础认证设置,格式: 用户名@密码

    • times

      可选。设置cron最大执行的次数,默认没有次数限制。

注解

Cron使用HTTP GET方式请求URL

0 0
原创粉丝点击