統一管理crontab計畫任務的關鍵點,在於實現像crontab一樣對*/10 * * * *
這樣的命令如何進行解析。
解析完成最後呼叫系統函式執行shell
命令
新建控制器
/console/controllers/testcroncontroller
新增任務
$this->cronjobs = [
'hello/index' => '* * * * *',
'hello/test' => '*/10 * * * *',
];
新增crontab任務
* * * * * /usr/bin/php /project/yii test-cron/run
<?php
namespace
console\controllers
;use
yii\console\controller
;class
testcroncontroller
extends
controller
public
function
actionrun()
}// 下面是呼叫系統函式執行shell命令
$this
->
runcommandbackground
($command);
}}/** * 解析需要執行的命令
* @param $cronjobs
* @return array
*/public
function
parsecron
($cronjobs
)else
else}}
// 判斷*/10 這種型別的if(
$every
>1)
}}}}
return
$raw;}
/** * 以守護程序模式執行命令
* @param $command
*/public
function
runcommandbackground
($command
)}
Gradle統一管理版本
為了提高專案開發效率,在實際專案開發過程中往往會引入一些開源框架,還有專案中使用的各種module,當引入module過多時最好提供一種統一的方式去管理版本號,如 compilesdkversion buildtoolsversion androidtestcompile 等,便於日後對版本號進行維...
Redis Key 統一管理技巧
我們的專案中可能存在多種業務場景需要接入 redis 快取,在插入快取時需要設定 key,如果這個 key 散落在專案的各個業務 中的話,會給後期維護帶來很大的不便。所以我建議把系統中用到快取 key 放到乙個類中統一管理,相同業務的 key 放到一起,這樣也提高了系統 的可讀性,讓看這個系統的人一...
Android Gradle 統一管理依賴
在project的根目錄建立gradle型別的檔案 檔案定義某些依賴版本號,用於其它gradle檔案引用,統一管理 ext在project中的gradle檔案引入新建立的gradle versions.gradle 此處引入新建立的檔案 buildscript dependencies allpro...