Установка сервера очередей Gearman в Ubuntu
Для одного из проектов мне понадобился сервер очередей. Выбор пал на GEARMAN. О его установке сегодня и расскажу..
Устанавливаем сервер gearmand такой командой
После установки все готово к использованию, поэтому сразу его и запускаем
Теперь надо установить расширения для PHP, выполняем
В моем случае я получил такую ошибку
Решением стало подключение репозитория ondrej/pkg-gearman:
Теперь снова пробуем установить расширение
На этот раз все прошло успешно. Теперь перезапускаем apache:
Теперь можно создать php скрипт и проверить заработал ли Gearman:
В моем случае, все прошло успешно и в ответ от скрипта я получил такую строку:
Теперь нужно установить gearadmin с помощью которого удобно просматривать кол-во заданий в очереди и мониторить кол-во активных worker-ов, делается это такой командой:
Теперь можно переходить к написанию кода и использовании сервера очередей Gearman, об этом и поговорим в следующей статье..
Параметры сервера gearmand:
GEARMAND HELP
General options
-b [ --backlog ] arg (=32) Number of backlog connections for listen. --check-args Проверить аргументы командной строки и конфигурационного файла -d [ --daemon ] Запуск в фоновом режиме -f [ --file-descriptors ] arg Кол-во файловых дискрипторов для процесса (кол-во соединений будет немного ниже). По-умолчанию: максимум доступный пользователю -h [ --help ] Помощь -j [ --job-retries ] arg (=0) Количество попыток выполнить задание перед тем как сервер удалит его. Полезно, чтобы "плохая" задача не "убила" все доступные воркеры. По-умолчанию: нет лимита. -l [ --log-file ] arg Лог файл для записи ошибок и другой информации. Включение этой опции включает первый уровень логирования. -L [ --listen ] arg Адрес сервера, на котором он будет работать. По-умолчанию: INADDR_ANY (все ip). -p [ --port ] arg (=4730) Порт на котором будет работать. По-умолчанию: 4730. -P [ --pid-file ] arg Путь к PID файлу (файлу содержащему номер процесса сервера). -r [ --protocol ] arg Протокол сервера. -R [ --round-robin ] Assign work in round-robin order per worker connection. The default is to assign work in the order of functions added by the worker. -q [ --queue-type ] arg Тип очереди (например, mysql). -t [ --threads ] arg (=4) Количество потоков ввода/вывода. По умолчанию: 4. -u [ --user ] arg Работать от пользователя (переключится на указанного пользователя, после старта). -v [ --verbose ] arg (=v) Увеличить уровень логирования -V [ --version ] Показать версию -w [ --worker-wakeup ] arg (=0) Запускаемое количество воркеров (workers to wakeup) для каждой получаемой задачи. По умолчанию: запускаются все воркеры. HTTP:
--http-port arg (=8080) Порт на котором будет работать. По-умолчанию: 8080. Sqlite
--libsqlite3-db arg Файл базы данных. --libsqlite3-table arg (=gearman_queue) Таблица базы данных. Memcached(libmemcached)
--libmemcached-servers arg Список Memcached серверов. Drizzle/MySQL(libdrizzle)
-host arg Хост подключения. -port arg Порт подключения. (По-умолчанию: порт Drizzle) -uds arg Сокет подключения (в случае подключения через сокет). -user arg Имя пользователя для подключения. -password arg Пароль для подключения. -db arg Имя базы данных. -table arg Название таблицы базы данных. -mysql arg Использовать MySQL протокол. Postgres
--libpq-conninfo arg PostgreSQL строка подключения. --libpq-table arg (=queue) Название таблицы базы данных. Tokyo Cabinet
--libtokyocabinet-file arg Имя файла базы данных. [смотри правила именования тут: man tcadb, tcadbopen()] --libtokyocabinet-optimize Оптимизировать базу во время открытия. По-умолчанию: true
Хранение очереди в MySQL
Структура базы для хранения очереди в MySQL
Пример запуска Gearman для использования очереди с MySQL, база на том же хосте
база на другом хосте
Опции gearadmin
GEARADMIN HELP
--help Помощь. -h [ --host ] arg (=localhost)i Хост подключения, по-умолчанию: localhost -p [ --port ] arg (=4730) Порт подключения, по-умолчанию: 4730 --create-function Создать функцию. --drop-function Удалить функцию с сервера. --server-version Версия сервера. --server-verbose Уровень логирования сервера. --status Статус сервера (кол-во заданий в очереди, кол-во выполняемых заданий, кол-во воркеров). --workers Воркеры сервера. --shutdown Завершить работу сервера.
На этом на сегодня - всё, до новых встреч!
Author: | Tags: /
| Rating:
Leave a Reply