Я использую сервер Job Gearman в своем проекте. Я использую драгоценный камень «gearman-ruby». В приложении есть очередь задач. Одна задача состоит из 4 частей.
Соответственно у меня есть 4 рабочих, чтобы решить эту задачу.Переполнение очереди задач ретранслятора с заданными задачами
Моя система решает одну задачу за 10 минут без редуктора. Но когда я использую Gearman, время для решения 10 задач 2-3 часа :(
очередь Gearman расположены в MySQL очереди, переполнением
Cron запускает клиентов, которые устанавливают задачи одну задачу -... Разобрать одну страницу 1-й рабочий - получить страницу (init), 2-й - получить фотографии (изображения), 3-й - получить комментарии (текст), 4-й - получить характеристики (текст). 1-й рабочий получает страницы, другие работники анализируют разные данные с этих страниц.
Gearman конфиги:
$cat /etc/sysconfig/gearmand
## Settings for gearmand
OPTIONS="--listen=127.0.0.1
--job-retries=3 \
--log-file=/var/log/gearman.log \
--queue-type=MySQL \
--mysql-host=localhost \
--mysql-port=3306 \
--mysql-db=gearman \
--mysql-table=queue"
$gearmand --version
gearmand 0.35
Помогите мне пожалуйста, чтобы настройки Gearman для скорости работы
Вы предлагаете слишком мало работать. Пожалуйста, добавьте более подробную информацию: (В разумных пределах) характер задач, текущая настройка сервера, код, который выполняет фактическую обработку (работников). Как видно из описания, проблемой может быть что угодно/все. – fmendez
Задача клиента задана, но я вижу эту задачу в gearman.queue (таблица в mysql) через 10-15 минут. И есть задержка ожидания, прежде чем работник начнет выполнять свою задачу. Я смотрю его, когда я тестирую экипировку только по одной задаче. Вот почему я думаю, что проблема в немецких настройках ... – bmalets
добавить «-threads = 12» в config. Задержка перед тем, как работник начинает выполнять свою задачу, значительно сокращается. Но Gearman все еще работает очень медленно ... И очередь переполнена задачами. Задачи решены, но все еще есть в gearman.queue :( – bmalets