orvelo/heartbeat-client

Orvelo Heartbeat 客户端 - 当您的脚本未完成健康检查时获取警报

此软件包的规范存储库似乎已消失,因此该软件包已被冻结。

v1.0.5 2017-04-13 15:27 UTC

This package is auto-updated.

Last update: 2024-08-03 19:16:01 UTC


README

8 8888        8 8 8888888888            .8.          8 888888888o. 8888888 8888888888 8 888888888o   8 8888888888            .8.    8888888 8888888888
8 8888        8 8 8888                 .888.         8 8888    `88.      8 8888       8 8888    `88. 8 8888                 .888.         8 8888
8 8888        8 8 8888                :88888.        8 8888     `88      8 8888       8 8888     `88 8 8888                :88888.        8 8888
8 8888        8 8 8888               . `88888.       8 8888     ,88      8 8888       8 8888     ,88 8 8888               . `88888.       8 8888
8 8888        8 8 888888888888      .8. `88888.      8 8888.   ,88'      8 8888       8 8888.   ,88' 8 888888888888      .8. `88888.      8 8888
8 8888        8 8 8888             .8`8. `88888.     8 888888888P'       8 8888       8 8888888888   8 8888             .8`8. `88888.     8 8888
8 8888888888888 8 8888            .8' `8. `88888.    8 8888`8b           8 8888       8 8888    `88. 8 8888            .8' `8. `88888.    8 8888
8 8888        8 8 8888           .8'   `8. `88888.   8 8888 `8b.         8 8888       8 8888      88 8 8888           .8'   `8. `88888.   8 8888
8 8888        8 8 8888          .888888888. `88888.  8 8888   `8b.       8 8888       8 8888    ,88' 8 8888          .888888888. `88888.  8 8888
8 8888        8 8 888888888888 .8'       `8. `88888. 8 8888     `88.     8 8888       8 888888888P   8 888888888888 .8'       `8. `88888. 8 8888

心跳客户端

心跳服务器通过监听任务成功完成后的“心跳”来让您放心,您的定时任务正在运行。心跳将通过此客户端(或如果您愿意,您可以自己编写)与服务器通信。

基本用法

将心跳客户端包含在您的 composer.json

"orvelo/heartbeat-client" : "^1.0"

假设您已引入 vendor/autoload.php,那么以下是最小化启动服务器的步骤

\Orvelo\Heartbeat::task('Super-important task')
    ->token('TOKEN_GOES_HERE')
    ->source('live-cluster')
    ->every('15m')
    ->slop('2m')
    ->email('person@example.com');

在您确信计划任务已成功完成后,在您的代码中放置此调用(或一个类似的调用)。相同的代码用于注册任务和更新服务器的心跳。

我们的示例执行以下操作

  1. 将任务命名为“超级重要任务” - 这是一个标识符,以便您知道哪个脚本有问题
  2. 设置您的访问令牌 - 您可以从我们这里获得一个
  3. 设置来源 - 以便您知道消息来自哪个服务器(或者如果多个服务器处理定时任务,则为集群的名称)
  4. 设置预期重复时间 - 在这个例子中,我们表示该任务每15分钟成功完成一次
  5. 设置2分钟的时间窗口 - 因为您知道您的脚本有时需要更长的时间
  6. 提供发送警报的电子邮件地址

任务的唯一标识符是任务名称和来源。如果您有多个服务器执行相同任务,则可以在多个来源中使用具有相同名称的任务。

您可以通过调整任何非 task()token()source() 的函数来随时修改任务。下一次调用服务器将作为收到的心跳并做出更改。

日常函数

static task(string) 作为构造函数,设置任务名称。这将用于在标识任务和在发送的电子邮件通知中使用

token(string) 设置您的访问令牌。如果没有有效的令牌,服务器将不会响应

every(string) 设置您的预期更新时间。以下是一些示例

  • 1h 2m 5s
  • 3m
  • 180m
  • ..等等

slop(string) 允许任务在时间上不那么严格,并给予额外的警告时间。使用与 every() 相同的格式。如果您的脚本完成时间波动,则很有用。

email(string|string[]) 设置我们发送到的电子邮件地址(或地址数组)

source(string) 设置来源。可以使用 gethostname() 定位到特定服务器,或将它定义为来自您的定时任务集群

取消心跳

发送任务名称和来源,以及调用 cancel(),如下所示

// cancel an existing task
\Orvelo\Heartbeat::task('Super-important task')
    ->token('TOKEN_GOES_HERE')
    ->source('live-cluster')
    ->cancel();

发送即时警报

您还可以将心跳服务器用作通知系统,用于一些您应用程序创建的更严重的错误。如果发生最坏的情况,请链接调用 ohDear()

\Orvelo\Heartbeat::task('This should never happen!')
    ->token('TOKEN_GOES_HERE')
    ->source('live-cluster')
    ->email('person@example.com')
    ->ohDear();

暂停所有任务

如果您有定期间隔的任务,可能会被部署、迁移或计划维护的停机时间中断,则可以暂停从定义来源的所有任务。这将停止心跳服务器检查心跳。

\Orvelo\Heartbeat::task('Pause')
    ->token('TOKEN_GOES_HERE')
    ->source('live-cluster')
    ->pause();

恢复所有任务

一旦您完成对应用程序的维护,您可以通知心跳服务器继续运行操作。所有从这个来源发起的任务,其下一次运行时间将被设置为当前时间加上预配置的间隔。

\Orvelo\Heartbeat::task('Resume')
    ->token('TOKEN_GOES_HERE')
    ->source('live-cluster')
    ->resume();