2012-01-15 2 views
0

Я выполняю некоторые задания через django-celery (с кроличником в качестве backend), задачи требуют много времени и интенсивного процессора.Состояние по-немецки-сельдерея ПОЛУЧЕН?

У меня есть 2 экземпляра Ec2 для экз. (Один из них маленький, а другой - высокий уровень процессора).

Ive установил небольшой экземпляр для запуска 1 параллельной задачи и средства для выполнения 4. Это хорошо работает для меня. Но иногда, на мониторе сельдерея, я вижу, что маленький экземпляр работает над задачей, а еще 2 или 3 задачи находятся в состоянии «ПОЛУЧЕННОЕ» (назначено маленькому экземпляру), в то время как средний экземпляр ничего не делает. В идеале id, как средний экземпляр, должен иметь предпочтение по отношению к маленькому, но в этом случае, если малый находится на параллелизме, задача должна перейти к среде. Кажется, что маленький экземпляр кусается больше, чем он может пережевывать .. как при распределении задач для себя, которые он не может начать на данный момент.

Есть ли способ заставить рабочих принять только те задачи, которые он может начать в этот момент?

Снимок экрана: http://dl.dropbox.com/u/361747/task-state.png. Рабочий, начинающийся с domU, является маленьким, тот, который начинается с ip, является средним.

ответ

1

Вы можете использовать опцию CELERYD_PREFETCH_MULTIPLIER для управления количеством заданий для предварительной выборки. В вашем случае CELERYD_PREFETCH_MULTIPLIER = 1 поможет равномерно распределить задачи.

http://ask.github.com/celery/configuration.html#celeryd-prefetch-multiplier

+0

Спасибо, не знали об этой настройке. Будет проверяться позже сегодня. – sajal

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