aryeo/monitored-jobs

监控您的 Laravel 任务。

v3.0.1 2024-02-29 20:38 UTC

This package is auto-updated.

Last update: 2024-08-29 21:44:00 UTC


README

概览

此包通过挂钩 Laravel 队列系统触发的事件来跟踪您的队列任务的状态和历史。

我们将此数据存储在数据库表 monitored_jobs 中。

安装

composer require aryeo/monitored-jobs

配置

您可以选择发布配置文件,这允许您配置

  • 是否启用监控
  • 要监控哪些任务
  • 在修剪之前保留监控任务历史记录的天数

要发布配置文件

php artisan vendor:publish --tag=monitored-jobs

控制监控

要控制是否监控 任何 任务,设置 monitored-jobs.enabled 配置值。

有两个配置选项用于过滤要监控的任务: include_jobsexclude_jobs。这两个配置选项的默认值都是 null,这意味着将包括任何任务类。

  • 'include_jobs' => null 表示我们没有设置配置选项,因此所有任务都将被监控
  • 'include_jobs' => [] 表示我们设置配置选项以包括没有任务,这意味着没有任务将被监控

包括和排除相同的任务类

首先检查 exclude_jobs 选项,如果发现要排除的任务,则将跳过监控。

修剪监控任务

MonitoredJob 模型设置为使用 Laravel 的模型修剪:[https://laravel.net.cn/docs/8.x/eloquent#pruning-models](https://laravel.net.cn/docs/8.x/eloquent#pruning-models)。

为了使模型被修剪,您必须通过调度器设置命令

protected function schedule(Schedule $schedule)
{
    $schedule->command('model:prune')->daily();
}

您可以通过配置文件调整保留监控任务记录的时间

'prune_after_days' => 14,

标签

此包将尝试从任务类中提取标签。这是通过在任务类上使用 tags 方法或在任务构造函数中提取参数来完成的。

  • 模型与模型集合将被序列化为 {$class}_{$KEY}
  • 数组将被 JSON 编码
  • 布尔值将被转换为 "true" / "false" 字符串
  • 字符串和数字将按原样存储
  • 对象将不会作为标签存储