nepster-web
@nepster-web

Как настроить выполнение задач в Gearman?

Установил Gearman, поставил gearman-monitor в общем все работает:

Workers
Server 	IP 	Functions 	Descriptor 	Id
Gearman 	127.0.0.1 	30 	-


Gearman servers
Server 	Address 	Version
Gearman 	127.0.0.1:4730 	OK 0.33


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

Как записывать все очереди в mysql ?
К примеру есть скрипт, который выполняется несколько минут. Пускай тот-же конвертер видео или обработчик фото. Я хочу сделать такую штуку на сайте, к примеру пользователь делает какуе-то жирную вещь на сайте и видит сообщение "поставлено в очередь, будет обработано в течении 15 минут", собственно если таких очередей будет много, я бы хотел что бы вместо оперативной памяти, они хранились в базе.

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

Для каждой задачи свой воркер?
К примеру на сайте есть несколько задач, которые будут работать через gearman. Как я понял для каждой задачи нужен свой воркер ?

Например задачи такие:
- активация пользователя
- обработка видео
- обработка фото
- нарезка фото
  • Вопрос задан
  • 2780 просмотров
Пригласить эксперта
Ответы на вопрос 1
DnAp
@DnAp
Как записывать все очереди в mysql ?

Нужно запускать демон Gearman с параметрами вроде таких
--queue-type=MySQL \
          --mysql-host=localhost \
          --mysql-port=3306 \
          --mysql-user=gearman \
          --mysql-password=your_pw \
          --mysql-db=gearman \
          --mysql-table=gearman_queue

Может не завестись сразу так как gearman может быть скомпилирован без поддержки баз данных.
Как сделать синхронную работу воркера?

По окончанию одной задачи ставить в очередь вторую. А в случае ошибки можно поставить повторную задачу на выполнение с меньшим приоритетом.

Для каждой задачи свой воркер?

Ну по хорошему да, можно даже не один, хотя тут ограничений нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы