使用 Time Warden 在 PHP 中监控代码处理时间
发布时间 作者 Paul Redmond
Time Warden 是一个轻量级的 PHP 库,它使你能够监控任务的处理时间,并在超过定义的执行时间限制的阈值时采取措施。它最好用 自述文件 中的示例来说明
timeWarden()->task('Checking articles')->start(); foreach ($articles as $article) { // Perform long process... 🕒} // Using traditional anonymous functiontimeWarden()->stop(static function (Task $task): void { $task->onExceedsMilliseconds(500, static function (Task $task): void { // Do what you need, for example, send an email 🙂 new SlowArticleProcess($task) ); });}); // Or using an arrow functiontimeWarden()->stop(static function (Task $task): void { $task->onExceedsMilliseconds(500, fn (Task $task) => Log::error($task->name.' has taken too long'));});
该库在项目的自述文件中拥有出色的文档,总结来说,它提供以下功能
- 监控开发和调试中关键任务的处理时间
- 在时间超过时采取反应式操作(毫秒、秒、分钟和小时)
- 执行时间调试输出
- 测量单个任务和任务组的执行时间
- 与 Laravel、Symfony、独立等框架无关的库
- PHP 8.2+
我喜欢任务的输出,你可以直接输出或通过日志系统输出
echo timeWarden()->output();/*╔═════════════════════ TIMEWARDEN ═════╤═══════════════╗║ GROUP │ TASK │ DURATION (MS) ║╠═════════════════════╪════════════════╪═══════════════╣║ default (320.37 ms) │ Articles task │ 70.23 ║║ │ Customers task │ 250.14 ║╚══════════════════ Total: 320.37 ms ══╧═══════════════╝*/ // Send as a logif (app()->environment('local')) { Log::debug(timeWarden()->output());}
你可以在 GitHub 上了解更多关于该包的信息,获取完整的安装说明,并查看 源代码。