> 技术文档 > 系统定时任务扩展开发指南

系统定时任务扩展开发指南


适用场景

当系统内置定时任务类型无法满足业务需求时,开发者可通过本教程快速掌握自定义定时任务的扩展方法。本指南以\"定时检测服务\"为例,演示完整开发流程。

我想添加一个定时任务 ,而这里没有我需要的,我怎么来添加

比如我想添加一个定时检测用户是否是分销员的定时任务

开发流程

一、注册任务类型

  1. 定位配置文件
    打开 app/services/system/timer/SystemTimerServices.php
    添加任务标识
    $taskName 数组中新增任务类型标识(参考下图配置示意图):
    说明:此处定义的任务标识将作为系统识别的唯一Key
protected array $taskName = [ // ...原有配置 \'auto_user_promoter\' => \'检查用户是否是推广员\', // 新增任务类型];

二、实现任务逻辑
  1. 定位执行入口
    打开 app/listener/system/timer/SystemTimer.php
  2. 扩展任务处理
    implement_timer 方法中添加对应分支:(参考下图配置示意图):
public function implement_timer(string $mark) switch($mark){ // ...原有case case \'auto_user_promoter\': return app()->make( UserServices::class)->autoUserPromoter(); break; }}

三、创建业务方法

再对应的 services 里面写自己的后续逻辑,如果数据量大,建议分批添加队列执行

四、后台管理配置

登录系统后台 → 设置 → 系统维护 → 定时任务 → 添加定时任务:

如下图

总结

通过本指南,开发者可以快速完成从任务注册到业务实现的完整流程。建议在实际开发中结合业务需求进行功能扩展,并严格遵守系统安全规范。

以下为关键要点回顾与建议:

核心流程回顾

  1. 标准化接入
    • 类型注册 → 逻辑实现 → 周期配置 → 后台激活 四步完成基础接入
    • 采用 开关分支+独立方法 模式保障代码可维护性
  1. 关键开发环节
    • 任务标识定义需保持全局唯一性
    • 周期表达式建议优先采用系统预置模板
    • 后台配置自动关联任务类型与执行规则

通过规范化开发与持续优化,定时任务模块可成长为支撑业务稳定运行的核心调度中枢。建议每季度开展任务健康度评审,持续提升系统可靠性。