poetry / cccms-app
CCCMS 应用包扩展
Requires
- php: >=8.0.0
- poetry/cccms-library: ^2.0
README
介绍
cccms-app 是基于 cccms-library 开发的后台管理应用接口,提供后台(admin 模块)
的通用控制器、命令等。本包命名空间为 app\,映射到 src/,与项目 cccms/app
共用同一命名空间,因此包内的类可直接被自动加载,与项目业务代码无缝协作。
代码仓库
本项目 为 MIT 协议开源项目,安装使用或二次开发不受约束,欢迎 fork 项目。
部分代码来自互联网,若有异议可以联系作者进行删除。
- Gitee 仓库地址:https://gitee.com/svipchao/cccms-app
- Github 仓库地址:https://github.com/svipchao/cccms-app
目录结构(节选)
src/
├── admin/ # 后台管理模块(命名空间 app\admin)
│ ├── command/
│ │ └── Cron.php # 定时任务调度器命令(命令名 cron)
│ └── controller/ # 后台通用控制器
│ ├── Config.php # 系统配置
│ ├── Crontab.php # 定时任务(sys_crontab)管理
│ ├── DataAuth.php # 数据权限
│ ├── Dept.php # 部门
│ ├── Dict.php # 字典
│ ├── File.php # 文件
│ ├── Index.php # 首页/登录等
│ ├── Log.php # 日志
│ ├── Menu.php # 菜单
│ ├── Post.php # 岗位
│ ├── Role.php # 角色
│ └── User.php # 用户
└── index/ # 前台/默认模块
定时任务调度命令(Cron)
调度器的命令实现位于本包 src/admin/command/Cron.php(命名空间
app\admin\command\Cron,命令名 cron),由 cccms-library 的
src/cccms/config/console.php 注册。它是一个纯调度工具,不含业务代码,
以 sys_crontab 表为唯一数据源,负责「读表 → 异步派发 → 按任务加锁防叠加」。
| 命令 | 作用 |
|---|---|
php think cron |
派发模式:读缓存任务列表,按 rule(5 段分钟级 / 6 段秒级)到点的任务才异步派发;单次任务(type=1)已执行过的跳过 |
php think cron --task=<任务ID> |
执行模式:运行指定 ID 的任务(由派发模式内部调用,会写执行日志;单次任务跑完自动禁用) |
php think cron --refresh |
刷新任务列表缓存(增删改任务后调用,一般由模型事件自动触发) |
宝塔计划任务触发频率需与
rule粒度匹配:分钟级任务(5 段 rule)每分钟触发一次; 秒级任务(6 段 rule)需每秒触发一次。若日志只显示Successful而无「派发任务#X」, 多为无启用任务、当前无到点任务或type=1已执行过,可先php think cron --refresh查看启用任务数。
完整架构、
command字段格式、宝塔计划任务配置、缓存与自动刷新、防叠加锁等 详细说明见cccms-library/README.md的「定时任务使用方式」章节。
提示:
Cron.php位于vendor/下,执行composer update poetry/cccms-app可能被覆盖,建议纳入版本管理或 patch 备份。