2014-07-04 5 views
0

Я хочу использовать gearman как систему очереди для веб-проекта. Поэтому я пробовал gearman и gearmanManager, который отлично работает. Но знайте, я спрашиваю себя, что произойдет, если ушел рабочий, работа или сервер (например, ошибка php или какая бы то ни было причина).Gearman и потерянные рабочие

  • Что произойдет, если я запускаю работу Синхрон, где разбившийся клиент (браузер) ждет обратного вызова и рабочий/сервер?
  • Что произойдет, если есть работа асинхронов, которая была обработана, когда она работает? Будет ли ретранслятор снова попробовать его (потому что он хранится в очереди в mysql) или будет игнорировать его? И что с ним произойдет, если он не будет проигнорирован, и рабочий снова и снова рушится?

Я хотел бы узнать, является ли система ist scalabel (например, NFS). У вас есть примеры для меня или опыта, на которых я могу продвинуться вперед?

Спасибо всем, и есть очень хороший уик-энд ...

Phil

ответ

2
  1. Если сервер упал, ваш клиент не будет иметь ничего для подключения. Как вы справляетесь с этим, это зависит от вашего приложения. Если рабочий разбился, и вы пытаетесь запустить синхронную задачу, клиент будет ждать, пока рабочий становится доступным, если вы не указали значение тайм-аута.

  2. Если задача асинхронной работы выполнена, а работник, режущий механик выполнит задачу под рукой. Если он разбивает каждого рабочего, который его захватывает, вы можете остаться без активных работников. C-версия/передача имеет возможность настроить такое поведение:

    -j [--job-retries] arg (= 0) Число попыток выполнить задание до того, как сервер задания удалит его. Это полезно для обеспечения плохой работы не сбой всех доступных работников. По умолчанию нет ограничений.

Если вы используете сломанный или хрупкий код, у вас будут проблемы, независимо от того, какую систему вы используете. Плохой код разбивает приложения. :-)

Установка Gearman является масштабируемой, но помните, что если вы используете поддержку постоянной очереди, каждый сервер нуждается в, чтобы иметь собственный сервер. Вы не можете разделить одну и ту же базу данных и таблицы по экземплярам сервера, поскольку постоянная очередь поддерживается только в качестве резервной копии в случае, когда передатчик и умирает, и его необходимо перезапустить. Возможно, было бы более полезно позволить вашему приложению легко ставить задачи в очередь, если это необходимо.

+0

Здравствуйте, fiskfisk, спасибо, что ответили на мой вопрос. это помогает мне из моего застрявшего :) :). иметь приятный понедельник вид приветствуется – TheTom

+0

@ user3804760 Пожалуйста, примите ответ, если он решает вашу проблему. – MatsLindh

Смежные вопросы