适用场景
当系统内置定时任务类型无法满足业务需求时,开发者可通过本教程快速掌握自定义定时任务的扩展方法。本指南以"定时检测服务"为例,演示完整开发流程。
我想添加一个定时任务 ,而这里没有我需要的,我怎么来添加
比如我想添加一个定时检测用户是否是分销员的定时任务
开发流程
一、注册任务类型
1定位配置文件 打开 app/services/system/timer/SystemTimerServices.php 添加任务标识 在 $taskName 数组中新增任务类型标识(参考下图配置示意图): 说明:此处定义的任务标识将作为系统识别的唯一Key
二、实现任务逻辑
1定位执行入口 打开 app/listener/system/timer/SystemTimer.php
2扩展任务处理 在 implement_timer 方法中添加对应分支:(参考下图配置示意图):
三、创建业务方法
再对应的 services 里面写自己的后续逻辑,如果数据量大,建议分批添加队列执行
四、后台管理配置
登录系统后台 → 设置 → 系统维护 → 定时任务 → 添加定时任务:
如下图
总结
通过本指南,开发者可以快速完成从任务注册到业务实现的完整流程。建议在实际开发中结合业务需求进行功能扩展,并严格遵守系统安全规范。
以下为关键要点回顾与建议:
核心流程回顾
1标准化接入
○类型注册 → 逻辑实现 → 周期配置 → 后台激活 四步完成基础接入
○采用 开关分支+独立方法 模式保障代码可维护性
2关键开发环节
○任务标识定义需保持全局唯一性
○周期表达式建议优先采用系统预置模板
○后台配置自动关联任务类型与执行规则
通过规范化开发与持续优化,定时任务模块可成长为支撑业务稳定运行的核心调度中枢。建议每季度开展任务健康度评审,持续提升系统可靠性。
若有收获,就点个赞吧