1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/inhere-php-gearman-manager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Gearman worker manager (gwm)

Менеджер для работников PHP Gearman.

中文README

Может запускать и управлять несколькими работниками Gearman, можно установить максимальное время выполнения для каждого работника и максимальное количество выполнений заданий после достижения установленного значения. Работник автоматически перезапустит процесс, предотвращая зависание.

Рекомендуется ознакомиться с проектом brianlmoon/GearmanManager. Большое спасибо за этот проект.

Дополнительные функции:

  • Код легче читать и понимать.
  • Поддержка команд start, reload, restart, stop и status.
  • Более полезные функции.

Поддерживается только система Linux, требуется включить pcntl и posix.

Основные команды:

  • start:
// start
php bin/manager.php 
// run as daemon
php bin/manager.php --daemon 
  • stop:
php bin/manager.php stop
  • restart:
php bin/manager.php restart
  • more:
// see help info
php bin/manager.php --help

// print manager config info
php bin/manager.php -D

// jobs status
php bin/manager.php status
php bin/manager.php status --cmd status

// workers status
php bin/manager.php status --cmd workers

Команды и опции

Используйте php examples/gwm.php -h, чтобы увидеть все команды и опции.

root@php5-dev:/var/www/phplang/library/gearman-manager# php examples/gwm.php -h
Gearman worker manager(gwm) script tool. Version 0.1.0

USAGE:
  php examples/gwm.php {COMMAND} -c CONFIG [-v LEVEL] [-l LOG_FILE] [-d] [-w] [-p PID_FILE]
  php examples/gwm.php -h
  php examples/gwm.php -D

COMMANDS:
  start             Start gearman worker manager(default)
  stop              Stop running's gearman worker manager
  restart           Restart running's gearman worker manager
  reload            Reload all running workers of the manager
  status            Get gearman worker manager runtime status

SPECIAL OPTIONS:
  start/restart
    -w,--watch         Automatically watch and reload when 'loader_file' has been modify
    -d,--daemon        Daemon, detach and run in the background
       --jobs          Only register the assigned jobs, multi job name separated by commas(',')
       --no-test       Not add test handler, when job name prefix is 'test'.(eg: test_job)

  status
    --cmd COMMAND      Send command when connect to the job server. allow:status,workers.(default:status)
    --watch-status     Watch status command, will auto refresh status.

PUBLIC OPTIONS:
  -c CONFIG          Load a custom worker manager configuration file
  -s HOST[:PORT]     Connect to server HOST and optional PORT, multi server separated by commas(',')

  -n NUMBER          Start NUMBER workers that do all jobs

  -u USERNAME        Run workers as USERNAME
  -g GROUP_NAME      Run workers as user's GROUP NAME

  -l LOG_FILE        Log output to LOG_FILE or use keyword 'syslog' for syslog support
  -p PID_FILE        File to write master process ID out to

  -r NUMBER          Maximum run job iterations per worker
  -x SECONDS         Maximum seconds for a worker to live
  -t SECONDS         Number of seconds gearmand server should wait for a worker to complete work before timing out

  -v [LEVEL]         Increase verbosity level by one. (eg: -v vv | -v vvv)

  -h,--help          Shows this help information
  -V,--version       Display the version of the manager
  -D,--dump [all]    Parse the command line and config file then dump it to the screen and exit.

Добавление обработчика

Можно добавить обработчик заданий, используя функцию, замыкание или класс.

Класс или объект должен быть классом, реализующим __invoke() или интерфейсом inhere\gearman\jobs\JobInterface.

  • Файл: job_handlers.php

/**
 * a class implement the '__invoke()'
 */
class TestJob
{
    public function __invoke($workload, \GearmanJob $job)
    {
        echo "from TestJob, call by __invoke";
    }
}

// add job handlers

$mgr->addHandler('reverse_string', function ($string, \GearmanJob $job)
{
    $result = strrev($string);

    echo "Result: $result\n";

    return $result;
});

$mgr->addHandler('test_job', TestJob::class); // Используйте класс, реализующий интерфейс `inhere\gearman\jobs\JobInterface`, добавьте некоторые опции для задания.
$mgr->addHandler('echo_job', \inhere\gearman\examples\jobs\EchoJob::class, [
    'worker_num' => 2,
    'focus_on' => 1,
]);
  • расширяет inhere\gearman\Job

/**
 * Класс EchoJob
 * @package inhere\gearman\jobs
 */
class EchoJob extends Job
{
    /**
     * {@inheritDoc}
     */
    protected function doRun($workload, \GearmanJob $job)
    {
        echo "receive: $workload";
    }
}

Запустить менеджер

Используйте команду php gwm.php -h для получения дополнительной информации о помощи.

Запустите: php gwm.php

Мониторинг через веб-панель

Вы можете увидеть информацию о сервере, заданиях и работниках с помощью встроенного инструмента.

Выполните:

bash server.sh
// ИЛИ
php -S 127.0.0.1:5888 -t web

Откройте URL http://127.0.0.1:5888

— информация о сервере и заданиях;

— просмотр журнала;

Лицензия

BSD

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Инструмент для управления работниками Gearman в PHP. Позволяет одновременно запускать и управлять несколькими работниками Gearman, а также отслеживать их состояние выполнения. Можно настроить количество работников по своему усмотрению, а также задать количество работников для конкретной задачи. Также можно настроить работников на выполнение опре... Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/inhere-php-gearman-manager.git
git@api.gitlife.ru:oschina-mirror/inhere-php-gearman-manager.git
oschina-mirror
inhere-php-gearman-manager
inhere-php-gearman-manager
master