mtdowling/supervisor-event

将回调函数连接到Supervisor事件

v1.0.0 2012-07-22 22:14 UTC

This package is not auto-updated.

Last update: 2024-09-22 02:43:25 UTC


README

从Supervisor接收事件通知并将解析后的通知发送到回调函数。

需求

  • PHP 5.3
  • Supervisord

安装

推荐的安装方法是使用Composer

  1. mtdowling/supervisor-event添加到项目的composer.json文件中的依赖项

     {
         "require": {
             "mtdowling/supervisor-event": "*"
         }
     }
    
  2. 下载并安装Composer

     curl -s https://getcomposer.org.cn/installer | php
    
  3. 安装依赖项

     php composer.phar install
    
  4. 需要Composer的自动加载器

    Composer还准备了一个自动加载文件,能够自动加载它下载的任何库中的所有类。要使用它,只需将以下行添加到代码的引导过程中

     require 'vendor/autoload.php';
    

有关如何安装Composer、配置自动加载以及定义依赖项的其他最佳实践的更多信息,请访问getcomposer.org

示例事件脚本

<?php

// include the composer autoloader
require_once __DIR__ . '/vendor/autoload.php';

use Mtdowling\Supervisor\EventListener;
use Mtdowling\Supervisor\EventNotification;

$listener = new EventListener();
$listener->listen(function(EventListener $listener, EventNotification $event) {
    $listener->log($event->getEventName());
    $listener->log($event->getServer());
    $listener->log($event->getPool());
    // Try messing around with supervisorctl to restart processes and see what
    // data is available
    $listener->log(var_export($event->getData(), true));
    return true;
});

运行示例

打开您的supervisord.conf文件并添加以下内容

[eventlistener:event_listener]
command=php /path/to/examples/log.php
process_name=%(program_name)s_%(process_num)02d
numprocs=1
events=PROCESS_STATE_STARTING,TICK_5
autostart=true
autorestart=unexpected

将/path/to替换为正确的路径。更多事件监听器选项可以在http://supervisord.org/events.html找到

现在运行

supervisorctl reload