Cron是ACE為開發(fā)者提供的定時分布式定時任務(wù)服務(wù),可以按照要求來定時執(zhí)行相關(guān)的任務(wù)。例如:back.php 定期查詢數(shù)據(jù)庫特定消息匯總給開發(fā)者。Cron的語法規(guī)則與linxu下crontab的語法規(guī)則一致,但區(qū)別與crontab的配置文件定義cron的方式,ACE用PHP API來管理cron。crontab是以http的方式執(zhí)行,最終訪問的是php的代碼,如果發(fā)現(xiàn)執(zhí)行過程中連續(xù)5次返回失敗,則會自動刪除該計劃任務(wù)。
使用說明按照和linux下crontab一致的語法規(guī)則設(shè)定cron的執(zhí)行時機,調(diào)用cron相關(guān)接口添加、刪除、查看crontab。如果不熟悉linux下crontab的設(shè)置語法,請參考:
注意:
1、crontab是以http方式執(zhí)行的,腳本的最長執(zhí)行時間是30秒,如果是計劃任務(wù)執(zhí)行時間超過30秒,請分拆執(zhí)行;
2、 crontab是以http方式執(zhí)行的,腳本的最長執(zhí)行時間是30秒,如果是計劃任務(wù)執(zhí)行時間超過30秒,請分拆執(zhí)行;
3、 crontab僅僅對默認(rèn)版本生效;
4、目前支持兩種方式,一種是到點執(zhí)行一次的方式,例如:每天5點鐘執(zhí)行一個腳本;一種是偏移執(zhí)行的php方式,例如每個小時都要執(zhí)行一個php腳本。
< ?php
//添加crontab
$cron_id = cron_add("2/5 12-14 * * * *" , "cron/backup.php");
//刪除crontab
$ret = cron_delete($cron_id);
//查詢crontab
$array = cron_list();
?>
API文檔 string cron_add(string $scheduler, string $url, [string $timezone])添加定時任務(wù)
參數(shù):
scheduler
定時規(guī)則,和linux的cron規(guī)則一樣。
第一到五個字段的整數(shù)取值范圍及意義是:
0~59 表示分
1~23 表示小時
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
例如 2/5 12-14 * * * * 表示每天12點14點,每點2分開始每5分鐘執(zhí)行一次
url
執(zhí)行的腳本的名稱,例如:cron/backup.php
timezone
時區(qū),默認(rèn)為:GMT-8
返回值:
成功返回 cron_id,即定時任務(wù)編號;失敗返回false
bool cron_delete(string $cron_id)刪除定時任務(wù)
參數(shù):
cron_id
定時任務(wù)編號
返回值:
成功 true ;失敗false
array cron_list()查詢定時任務(wù)
參數(shù)
無
返回值
成功(arrary)[["cronId"=>"1","app_id"=>"2","url"=& gt;"cron/back.php","scheduler"=>"2/5 12-14 * * * *","timezone"=>"gmt-8"],...]
失敗 false