適用場景
當系統內置定時任務類型無法滿足業務需求時,開發者可通過本教程快速掌握自定義定時任務的擴展方法。本指南以"定時檢測服務"為例,演示完整開發流程。
我想添加一個定時任務 ,而這里沒有我需要的,我怎么來添加
比如我想添加一個定時檢測用戶是否是分銷員的定時任務

開發流程
一、注冊任務類型
??定位配置文件??
打開 app/services/system/timer/SystemTimerServices.php
??添加任務標識?
在 $taskName 數組中新增任務類型標識(參考下圖配置示意圖):
說明:此處定義的任務標識將作為系統識別的唯一Key
protected array $taskName = [
// ...原有配置
'auto_user_promoter' => '檢查用戶是否是推廣員', // 新增任務類型
];
二、實現任務邏輯
- ??定位執行入口??打開 app/listener/system/timer/SystemTimer.php
- ??擴展任務處理??在 implement_timer 方法中添加對應分支:(參考下圖配置示意圖):
public function implement_timer(string $mark)
switch($mark){
// ...原有case
case 'auto_user_promoter':
return app()->make( UserServices::class)->autoUserPromoter();
break;
}
}
三、??創建業務方法
再對應的 services 里面寫自己的后續邏輯,如果數據量大,建議分批添加隊列執行
四、后臺管理配置
登錄系統后臺 → 設置 → 系統維護 → 定時任務 → 添加定時任務:
如下圖

總結
通過本指南,開發者可以快速完成從任務注冊到業務實現的完整流程。建議在實際開發中結合業務需求進行功能擴展,并嚴格遵守系統安全規范。
以下為關鍵要點回顧與建議:
核心流程回顧
1、??標準化接入??
類型注冊 → 邏輯實現 → 周期配置 → 后臺激活 四步完成基礎接入
采用 開關分支+獨立方法 模式保障代碼可維護性
2、??關鍵開發環節??
任務標識定義需保持全局唯一性
周期表達式建議優先采用系統預置模板
后臺配置自動關聯任務類型與執行規則
通過規范化開發與持續優化,定時任務模塊可成長為支撐業務穩定運行的核心調度中樞。建議每季度開展任務健康度評審,持續提升系統可靠性。

