Как отложить / отложить работу Gearman? - PullRequest
1 голос
/ 25 декабря 2011

Я использую gearman для синхронизации данных на разных серверах.У нас есть 1 главный сервер и, например, 10 локальных серверов.Позвольте мне описать одну из возможных ситуаций.Скажем, Gearman начал работать, и 5 заданий выполнено, данные на этих 5 серверах синхронизированы.Когда начинается выполнение следующей работы, скажем, мы потеряли связь с сервером, и она сейчас недоступна.По логике зубчатого колеса он повторяет попытку снова и снова.Таким образом, оставшиеся задания (для серверов 7, 8, 9, 10) не будут выполнены, пока не выполнено 6-е.Лучшим решением будет отложить работу и положить ее в конец очереди и продолжить работу 7-10.

Если кто-то знает, как это сделать, пожалуйста, напишите способ.

PS: я использую python.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012
GearmanClient.submit_multiple_jobs(jobs_to_submit, background=False, wait_until_complete=True, max_retries=0, poll_timeout=None)

Эта функция поможет.Просто позвольте background = True.

Эта ссылка тоже поможет.

0 голосов
/ 20 января 2012

Задания Gearman могут выполняться параллельно или последовательно. Вместо использования отдельных заданий следует использовать одновременные задания (по одному для каждого сервера).

...