xtompie/monitor

Monitor long running script

1.3 2024-05-01 20:51 UTC

This package is auto-updated.

Last update: 2024-05-01 20:52:16 UTC


README

Monitor long running script

Requirments

  • PHP >= 8

Installation

Using composer

composer require xtompie/monitor

Doc

Basic exmaple

<?php

use Xtompie\Monitor\Monitor;

$monitor = new Monitor(name: 'import', stdout: true, frequency: 1);
foreach (input() as $input) {
    $imported = import($input);
    $imported ? $monitor->up('done') : $monitor->up('skip');
}
$monitor->show();

It will generator output in stdout:

#import | 2023-12-23 12:06:06 | 2023-12-23 12:06:10 | 0:00:00:04 | 2 mb | done: 2
#import | 2023-12-23 12:06:06 | 2023-12-23 12:06:12 | 0:00:00:06 | 2 mb | done: 5
#import | 2023-12-23 12:06:06 | 2023-12-23 12:06:12 | 0:00:00:06 | 2 mb | done: 5 | skip: 3

A new line with the monitor status is generated not more frequently than frequency.

For more check source code: Monitor

Creating specific monitor

<?php

use Xtompie\Monitor\Monitor;

class ImportMonitor extends Monitor
{
    public function done(): void
    {
        $this->up('done');
    }

    public function skip(): void
    {
        $this->up('skip');
    }
}