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