PYTHON Gearman Worker принимает несколько задач

Например: у меня есть задача с именем "URLDownload", функция задачи - загрузить большой файл из Интернета. Теперь у меня запущен рабочий процесс, но у меня есть около 1000 файлов для загрузки. Клиентскому процессу легко создать 1000 задач и отправить их на сервер Gearman.

Мой вопрос заключается в том, что рабочий процесс будет выполнять задачу один за другим или одновременно принимать несколько задач,

Если рабочий процесс может принимать несколько задач, то как я могу ограничить размер пула задач в рабочем процессе.

1 ответ

Решение

Рабочие обрабатывают один запрос за раз. У вас есть несколько вариантов:

1) Вы можете запустить несколько рабочих (это самый распространенный метод). Рабочие сидят в poll(), когда они не обрабатывают, поэтому эта модель работает довольно хорошо.

2) Напишите реализацию fork () вокруг рабочего. Таким образом, вы можете запустить определенное количество рабочих процессов, но вам не нужно отслеживать несколько процессов.

Другие вопросы по тегам