cronpulse/laravel-monitor

该包最新版本(v1.0.0)没有提供许可证信息。

使用 Cronpulse.live 的 Laravel 任务监控库

v1.0.0 2024-08-10 11:45 UTC

This package is auto-updated.

Last update: 2024-09-10 11:58:34 UTC


README

Cronpulse Laravel Monitor 是一个用于 Laravel 应用的监控库,允许您轻松发送心跳、开始/停止作业心跳,并包装作业以进行监控。这有助于确保您的计划任务按预期运行,并提供对作业失败或成功的洞察。

安装

要安装此包,将其添加到 Laravel 项目的 composer.json 文件中,然后运行 composer update

composer require cronpulse/laravel-monitor

配置

安装后,发布配置文件

php artisan vendor:publish --provider="Cronpulse\\LaravelMonitor\\MonitorServiceProvider"

将作业密钥添加到您的 .env 文件中

MONITOR_JOB_KEY=your-real-job-key

此作业密钥对于通过 cronpulse 认证您的心跳至关重要。

用法

基本监控

您可以使用 Monitor 类手动向 cronpulse 发送心跳。这可以用于发送有关计划作业的状态更新。

启动作业

要监控作业

use Cronpulse\LaravelMonitor\Monitor;

$monitor = new Monitor();
$monitor->ping('start');

标记作业为成功

作业成功完成后

$monitor->ping('success');

标记作业为失败

如果作业遇到错误并失败

$dynamicError = 'This is a dynamic error message';
$monitor->ping(['state' => 'fail', 'message' => $dynamicError]);

发送心跳

您还可以发送心跳以监控任务的常规执行

$monitor->ping('beat');

包装作业

wrap 函数提供了一种方便的方式来监控作业的开始和完成,包括错误处理。

成功作业示例

包装一个应该成功完成的作业函数

use function Cronpulse\LaravelMonitor\wrap;

wrap('your-job-key', function() {
    // Your job logic here
    return true;
});

失败作业示例

包装可能失败的作业函数

wrap('your-job-key', function() {
    // Simulate job failure
    throw new \Exception('Something went wrong');
});

wrap 函数将自动处理作业的开始、成功或失败发送心跳。

测试

该库包括测试以确保其功能。您可以使用 Laravel 的测试运行器运行测试

php artisan test

确保您的 .env 文件包含正确的 MONITOR_JOB_KEY,以便测试运行器针对您的监控服务运行。