sergeich5/php-supervisor-status-checker

Simple tool to check supervisor's processes statuses

Installs: 6

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/sergeich5/php-supervisor-status-checker

1.1.1 2021-04-14 12:33 UTC

This package is auto-updated.

Last update: 2025-10-08 13:13:39 UTC


README

Simple tool to check supervisor's processes statuses. You can receive events on process FATAL error and, for example, send a notification to yourself.

Installation

composer require sergeich5/php-supervisor-status-checker

Usage

  1. Create your own class and extend it from \Sergeich5\SupervisorStatusChecker\Callback\CallbackHandler or implement from \Sergeich5\SupervisorStatusChecker\Callback\CallbackHandlerInterface
<?php

// MyCallbackHandler.php

class MyCallbackHandler extends \Sergeich5\SupervisorStatusChecker\Callback\CallbackHandler
{
    function onBeforeTick()
    {
        // YOUR LOGIC HERE
    }

    function onAfterTick()
    {
        // YOUR LOGIC HERE
    }
    
    function onFatal(string $processName)
    {
        // YOUR LOGIC HERE
    }

    function onRunning(string $processName)
    {
        // YOUR LOGIC HERE
    }

    function onStarting(string $processName)
    {
        // YOUR LOGIC HERE
    }

    function onBackoff(string $processName)
    {
        // YOUR LOGIC HERE
    }

    function onStopped(string $processName)
    {
        // YOUR LOGIC HERE
    }

    function onUnknown(string $processName, string $status)
    {
        // YOUR LOGIC HERE
    }
}
  1. Implement necessary events and do your logic

  2. Create an instance of \Sergeich5\SupervisorStatusChecker\Checker and provide an instance of MyCallbackHandler, checking delay in seconds, event logic and debug/no-debug mode

$loop = new \Sergeich5\SupervisorStatusChecker\Checker(
    new MyCallbackHandler(),
    true,
    false
);
  1. Call method checkLoop(int DELAY_IN_SECONDS) for automatically check
$loop->checkLoop( int DELAY_IN_SECONDS );

or checkOnce() for one-time check

$loop->checkOnce();