本文主要介紹命令啟動(dòng)定時(shí)任務(wù)的功能,按照CRMEB標(biāo)準(zhǔn)版的程序?yàn)榇蠹以敿?xì)的進(jìn)行實(shí)現(xiàn)過(guò)程的介紹
- 首先創(chuàng)建安裝Worker,執(zhí)行composer require topthink/think-worker 安裝
- 在config/console.php中定義指令 'timer' => \crmeb\command\Timer::class
3. 對(duì)應(yīng)圖1中的路徑創(chuàng)建自定義指令crmeb\command\Timer.php
4. configure方法只要配置指令的內(nèi)容,文件定義了一個(gè)timer的命令,設(shè)置了一個(gè)status的參數(shù)以及兩個(gè)(d:是否DAEMON方式啟動(dòng),以及i:執(zhí)行間隔)的選項(xiàng)。
5. init方法在執(zhí)行命令的時(shí)候?qū)?shù)進(jìn)行初始化并組合數(shù)據(jù),判斷命令是啟動(dòng)還是停止,是否修改執(zhí)行間隔,是否以守護(hù)進(jìn)程方式啟動(dòng)
6. execute開(kāi)始執(zhí)行命令調(diào)用下方start方法
7. start方法開(kāi)始執(zhí)行定時(shí)執(zhí)行的邏輯按照設(shè)置的間隔時(shí)間($this->interval)進(jìn)行執(zhí)行,默認(rèn)2秒運(yùn)行一次,調(diào)用系統(tǒng)中app\event.php文件下定時(shí)任務(wù)事件訂閱類(lèi)
8. 在定時(shí)任務(wù)事件訂閱類(lèi)中完成對(duì)應(yīng)系統(tǒng)方法的調(diào)用,即可實(shí)現(xiàn)定時(shí)任務(wù)功能
9. 命令行執(zhí)行命令 php think timer start --d