摘要:應(yīng)用場(chǎng)景定時(shí)腳本任務(wù)需要在凌晨計(jì)算前一日的數(shù)據(jù)并匯總到統(tǒng)計(jì)表中。命令復(fù)雜的定時(shí)任務(wù)可以配合命令。命令按照命令行文檔,了解它的使用和配置。使用命令腳本名稱生成執(zhí)行文件,文件在中查看。
應(yīng)用場(chǎng)景:
定時(shí)腳本任務(wù)
需要在凌晨計(jì)算前一日的數(shù)據(jù)并匯總到統(tǒng)計(jì)表中。
Artisan命令
復(fù)雜的定時(shí)任務(wù)可以配合Artisan命令。
按照 Laravel Artisan命令行 文檔,了解它的使用和配置。
使用Artisan命令 php artisan make:command {腳本名稱} 生成執(zhí)行文件,文件在 app/Console/Commands 中查看。
添寫Artisan命令的名稱和描述,例如:
protected $signature = "stat:generate {start? : 腳本統(tǒng)計(jì)的起始時(shí)間(選填 eg.2017-10-01 )} {end? : 腳本統(tǒng)計(jì)的結(jié)束時(shí)間(選填)}"; protected $description = "生成每日的統(tǒng)計(jì)信息";
$signature屬性中的 start? end? 表示可輸入的可選參數(shù),這里提供了腳本開始和結(jié)束時(shí)間的可選項(xiàng),用于生成指定時(shí)間日期內(nèi)的統(tǒng)計(jì)信息,eg. php artisan stat:generate 2017-08-01 。
在handle()方法中寫程序部分
public function handle() { // 如果未輸入日期參數(shù),默認(rèn)選擇前一天作為統(tǒng)計(jì)時(shí)間(??是php7新語(yǔ)法) $this->date = $this->argument("start") ?? date("Y-m-d", strtotime("-1 day")); $endDate = $this->argument("end") ?? date("Y-m-d"); // 判斷輸入的日期格式是否正確 if (!strtotime($this->date) || !strtotime($endDate)) { $this->error("請(qǐng)輸入正確的日期格式!");die; } // 循環(huán)執(zhí)行每一天的統(tǒng)計(jì)腳本 while ($this->date < $endDate) { // 這里是需要執(zhí)行的統(tǒng)計(jì)邏輯,sql等 $this->_active_num_game(); // 每執(zhí)行一次,統(tǒng)計(jì)日期加1天 $this->date = date("Y-m-d", strtotime("{$this->date} +1 day")); } }定時(shí)腳本任務(wù):
將以下命令添加到cron 中
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
所有的計(jì)劃任務(wù)定義在 AppConsoleKernel 類的 schedule 方法中,Artisan命令寫在commands屬性中。
protect $commands = [ Commands{聲明的腳本文件名稱}::class ]; protected function schedule(Schedule $schedule) { // 上面的Artisan命令將在每晚執(zhí)行 $schedule->command("stat:generate")->daily(); }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30651.html
摘要:高性能高精度定時(shí)服務(wù),輕松管理千萬(wàn)級(jí)定時(shí)任務(wù)。支持任務(wù)到期觸發(fā)和。支持創(chuàng)建延時(shí)任務(wù)和定時(shí)到期任務(wù),和原生保持相同接口,輕松使用。不支持任務(wù)輸出任務(wù)鉤子及維護(hù)模式。是不指定任務(wù)名時(shí)自動(dòng)生成,每個(gè)任務(wù)名必須唯一,相同任務(wù)名重復(fù)定義將會(huì)自動(dòng)覆蓋。 Forsun高性能高精度定時(shí)服務(wù),輕松管理千萬(wàn)級(jí)定時(shí)任務(wù)。 定時(shí)服務(wù)項(xiàng)目地址:https://github.com/snower/forsun l...
摘要:項(xiàng)目概述糖果盒子是采用開發(fā)的站點(diǎn)導(dǎo)航應(yīng)用,專注分享優(yōu)質(zhì)開發(fā)資源站點(diǎn),希望成為開發(fā)人員最喜愛(ài)的的書簽導(dǎo)航。線上地址糖果盒子開發(fā)者的書簽導(dǎo)航地址求環(huán)境要求部署安裝本項(xiàng)目代碼使用框架開發(fā),本地開發(fā)環(huán)境使用。 showImg(https://segmentfault.com/img/remote/1460000012018405?w=3346&h=1950);showImg(https://s...
摘要:項(xiàng)目概述糖果盒子是采用開發(fā)的站點(diǎn)導(dǎo)航應(yīng)用,專注分享優(yōu)質(zhì)開發(fā)資源站點(diǎn),希望成為開發(fā)人員最喜愛(ài)的的書簽導(dǎo)航。線上地址糖果盒子開發(fā)者的書簽導(dǎo)航地址求環(huán)境要求部署安裝本項(xiàng)目代碼使用框架開發(fā),本地開發(fā)環(huán)境使用。 showImg(https://segmentfault.com/img/remote/1460000012018405?w=3346&h=1950);showImg(https://s...
摘要:項(xiàng)目概述糖果盒子是采用開發(fā)的站點(diǎn)導(dǎo)航應(yīng)用,專注分享優(yōu)質(zhì)開發(fā)資源站點(diǎn),希望成為開發(fā)人員最喜愛(ài)的的書簽導(dǎo)航。線上地址糖果盒子開發(fā)者的書簽導(dǎo)航地址求環(huán)境要求部署安裝本項(xiàng)目代碼使用框架開發(fā),本地開發(fā)環(huán)境使用。 showImg(https://segmentfault.com/img/remote/1460000012018405?w=3346&h=1950);showImg(https://s...
閱讀 2600·2021-09-06 15:02
閱讀 3238·2021-09-02 10:18
閱讀 2852·2019-08-30 15:44
閱讀 712·2019-08-30 15:43
閱讀 1976·2019-08-30 14:08
閱讀 2787·2019-08-30 13:16
閱讀 1439·2019-08-26 13:52
閱讀 959·2019-08-26 12:21