Table of Contents

上一個主題

KVDB

下一個主題

云郵件

本頁

定時任務?

服務概述?

定時任務服務可以用來定期觸發您的應用執行一些后臺任務,像定期清理和備份 MySQL 表中的數據、發送郵件通知等。定時任務的執行以 HTTP 方式觸發,觸發后真正執行的是您在應用中定義的 HTTP 回調函數。

  • 任務執行的方式是 HTTP 調用(GET 方法),執行時間最長為 1800 秒
  • 任務執行存在一定的時間誤差,最大不超過 10 秒
  • 任務不分應用版本,但只對默認版本生效,當切換代碼默認版本時對應版本的定時任務會被激活。
  • 任務的時間間隔粒度為分鐘。
  • 普通應用最大可以并發執行 12 個定時任務。多出的任務將不能被執行。

如何配置?

添加任務?

通過 Web 頁面

你可以進入『新浪云/定時任務』頁面,點擊『新建定時任務』添加任務。

通過 config.yaml 配置文件

您也可以在應用的配置文件 config.yaml 中添加任務。任務的執行狀態可在定時任務的 Web 管理頁面看到。

編輯 config.yaml 文件,增加 cron 段,例如:

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

上面的示例添加了一個定時任務,該任務每 5 分鐘調用 http:// 應用名.sinaapp.com/cron/make 一次。

每個定時任務的描述可以包含以下字段:

  • url

    任務觸發時調用的 url。只需寫相對 url 即可。例如 /relative/url/to/cron

  • schedule

    任務描述,也就是何時執行這個任務,支持 unix crontab 語法。unix crontab 的語法如下:

    <分鐘> <小時> <> <月份> <星期>
    
    • 分鐘 值從 0 到 59。
    • 小時 值從 0 到 23。
    • 值從 1 到 31。
    • 值從 1 到 12。
    • 星期 值從 0 到 6, 0 代表星期日。

    此外為了更靈活,unix crontab 語法還支持:

    • 時間范圍可以用連字符給出,多個時間范圍可以用逗號隔開。
    • 星號可以作為通配符。
    • 空格用來分開字段。
    • 除號可以用作指定每隔一段時間執行一次。

    例如下面一行將會指定任務在夏天(六、七、八月)之外的每周周一到周五的上午 9 點到下午 4 點之間每 5 分鐘執行一次任務。

    */5 9-16 * 1-5,9-12 1-5
    

    特殊語法字符串:

    字符串 含義 等價于
    @yearly 或 @annually 每年一月一號運行 0 0 0 1 1 *
    @monthly 每月一號運行 0 0 0 1 * *
    @weekly 每周日的凌晨零點運行 0 0 0 * * 0
    @daily 或 @midnight 每天夜里凌晨零點運行 0 0 0 * * *
    @hourly 每個整點運行 0 0 * * * *
    @every <時間間隔> 每隔一個固定的時間間隔運行,間隔時間由 duration 指定, 比如 @every 25m 表示每 25 分鐘運行一次, @every 1h30m 表示每 1 小時 30 分鐘運行一次。  

    更多范例和高級配置方法請參見: man 5 crontab

  • description

    可選。任務的說明,默認為空。

  • timezone

    可選。任務執行的時間采用的時區,默認為 Asia/Shanghai ,支持標準的時區名稱格式,更多時區名稱參見: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

  • login

    可選。HTTP 基礎認證設置,格式: 用戶名 @密碼

更多范例:

cron:
- url: /see/the/scenes/of/Los_Angeles
  schedule: "0 4 * * *"
  timezone: "America/Los_Angeles"
  description: "在洛杉磯時間的每天凌晨 4 點執行"
- url: /hearbeat
  schedule: "*/5 * * * *"
  description: "每 5 分鐘執行一次"
- url: /go/to/work
  schedule: "0 8 * * 1-5"
  description: "在工作日的每天早上 8 點執行"

刪除任務?

在管理頁面中點擊刪除,或者刪除 config.yaml 中對應的任務描述段即可。

河南22选5开奖
  • <em id="xpjve"><ol id="xpjve"></ol></em>

          1. <em id="xpjve"><ol id="xpjve"></ol></em>