weijukeji/laravel-schedule-monitor-api
Composer 安装命令:
composer require weijukeji/laravel-schedule-monitor-api
包简介
REST API endpoints for spatie/laravel-schedule-monitor - expose scheduled task status and logs
README 文档
README
为 spatie/laravel-schedule-monitor 提供 REST API 接口,将定时任务的监控状态和执行日志以 JSON 格式暴露出来,方便前端或其他服务消费。
依赖
- PHP >= 8.3
- Laravel 12.x, 13.x
- spatie/laravel-schedule-monitor ^4.0
安装
composer require weijukeji/laravel-schedule-monitor-api
发布配置文件(可选):
php artisan vendor:publish --tag=schedule-monitor-api-config
配置
配置文件位于 config/schedule-monitor-api.php:
return [ // API 路由前缀 'route_prefix' => 'api/v1/system/schedule-tasks', // 路由名称前缀 'route_name' => 'system.schedule-tasks', // 路由中间件 'middleware' => ['auth:sanctum'], // 任务列表每页数量 'per_page' => 20, // 日志列表每页数量 'log_per_page' => 50, ];
API 接口
获取任务列表
GET /api/v1/system/schedule-tasks
查询参数:
| 参数 | 类型 | 说明 |
|---|---|---|
page |
int | 页码,默认 1 |
per_page |
int | 每页数量,默认 20 |
status |
string | 按状态筛选,见下方状态说明 |
响应示例:
{
"code": 200,
"msg": "success",
"data": {
"list": [
{
"id": 1,
"name": "同步订单数据",
"type": "command",
"cron_expression": "0 * * * *",
"timezone": "Asia/Shanghai",
"grace_time_in_minutes": 5,
"status": "healthy",
"last_started_at": "2026-03-06 09:00:00",
"last_finished_at": "2026-03-06 09:00:01",
"last_failed_at": null,
"last_skipped_at": null,
"created_at": "2026-01-01 00:00:00",
"updated_at": "2026-03-06 09:00:01"
}
],
"total": 1
}
}
获取任务日志
GET /api/v1/system/schedule-tasks/{id}/logs
路径参数:
| 参数 | 类型 | 说明 |
|---|---|---|
id |
int | 任务 ID |
查询参数:
| 参数 | 类型 | 说明 |
|---|---|---|
page |
int | 页码,默认 1 |
per_page |
int | 每页数量,默认 50 |
响应示例:
{
"code": 200,
"msg": "success",
"data": {
"task": { ... },
"list": [
{
"id": 100,
"type": "finished",
"meta": [],
"created_at": "2026-03-06 09:00:01"
}
],
"total": 100
}
}
任务状态说明
状态由 TaskStatusResolver 按优先级依次判断:
| 状态 | 值 | 说明 |
|---|---|---|
| 从未运行 | never_ran |
任务自创建以来从未执行过 |
| 失败 | failed |
最近一次执行失败,且之后未成功完成 |
| 警告 | warning |
任务已超过预期执行时间 + 宽限期仍未完成 |
| 健康 | healthy |
任务按时正常完成 |
warning 判断逻辑:
基于 cron 表达式推算出下次应执行时间,加上宽限期后仍未完成则标记为警告,而不是简单以上次完成时间为基准。
下次预期执行时间(by cron)+ grace_time_in_minutes < 现在 → warning
日志类型说明
| 类型 | 说明 |
|---|---|
starting |
任务开始执行 |
finished |
任务成功完成 |
failed |
任务执行失败 |
skipped |
任务被跳过 |
日志自动清理
spatie/laravel-schedule-monitor 的日志模型使用了 Laravel MassPrunable,默认保留 30 天。
可在业务项目的 config/schedule-monitor.php 中修改保留天数:
'delete_log_items_older_than_days' => 30,
需要在定时任务中注册清理命令,否则日志不会自动清除:
// routes/console.php 或 app/Console/Kernel.php Schedule::command('model:prune')->daily();
License
MIT
weijukeji/laravel-schedule-monitor-api 适用场景与选型建议
weijukeji/laravel-schedule-monitor-api 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 21 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「cron」 「schedule」 「monitor」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 weijukeji/laravel-schedule-monitor-api 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 weijukeji/laravel-schedule-monitor-api 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 weijukeji/laravel-schedule-monitor-api 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Symfony bundle to monitor and execute commands
Enables the creation of cron-jobs tasks to be consumed by symfony/messenger
Scheduling extension for Yii2 framework
A Deployment/Change Log Schedule and Notes system for SilverStripe sites
A PSR-7 compatible library for making CRUD API endpoints
Monitoring for scheduled jobs
统计信息
- 总下载量: 21
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 26
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-06