Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Работа с Gearman + PHP + Supervisord на Debian 7.7 (wheezy)

Linux, Настройка сервера Add comments

Gearman — это менеджер очередей для синхронного и асинхронного выполнения задач. Читал о нем давно, но сегодня посчасливилось с ним познакомится более тесно 🙂

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

Установка Gearman и модуля для PHP

Первым делом поставим сам Gearman и модуль для PHP. Установка достаточно простая:

# apt-get install gearman php5-gearman

На этом было бы всё, если бы не одно НО…

Supervisord

Gearman получает задания от клиента и передает в работу воркеру, который должен постоянно работать и проверять есть ли что-то в очереди на выполнение. Воркер у меня на PHP, значит нужно заставить сркипт работать в фоновом режиме постоянно.

Одним из вариантов решения данной задачи является Supervisord. Поставим его и настроим наш воркер. Оговорюсь наперед, что по заданию у меня должен работать один воркер и обрабатывать очередь синхронно (по очереди).

Поставим его на сервер:

# apt-get install supervisor

Теперь создадим настройки для управления нашим воркером:

# nano /etc/supervisor/conf.d/bot_worker.conf

Вставим такой конфиг:

[program:bot_worker]
command=/usr/bin/php /home/www/workers/bot_worker.php
numprocs=1
directory=/home/www/workers/
stdout_logfile=/var/log/bot_worker.log
autostart=true
autorestart=true
user=root
stopsignal=KILL

Теперь осталось только перезапустить:

# service supervisor restart

Gearman Monitor

Если есть желание просмотративать состояние серверов и очереди, то можно поставить веб-морду Gearman Monitor. Процедура простая и скучновата: настроить хост на веб-сервере, скачать последнюю версию с GitHub и выдать права. Еще нужно в файле _config.php указать к каким серверам хотим подключатся и смотреть статистику.

Когда откроете страницу первый раз, то веб-морда запросит дополнительный pear-пакет Net_Gearman. Поставим его:

# apt-get install php-pear
# pear install Net_Gearman-0.2.3

Теперь можно переходить на ссылку и наблюдать чем занимается Gearman, какие воркеры работают и что лежит в очередях.

Успехов! 🙂


14 января, 2015  
Tags: debian, gearman, php, php5-gearman, supervisord, wheezy, гирман, дебиан, пхп, супервизор

Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2015 Gemini_13's Blog
G13.org.ua