2013-03-09 2 views
2

У меня есть сельдерей задачу так:Джанго сельдерей работает только с двумя задачами одновременно?

@celery.task 
def file_transfer(password, source12, destination): 
    result = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', source12, destination], 
            stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]        
    return result   

я назвал в представлении Djagno.

Пользователь может выбрать более одного файла для копирования в пункт назначения. Например, если пользователь выбирает, 4 файла одновременно, сельдерей принимает только 2 задания. Что не так?

ответ

1

Вы проверили настройку параллелизма своего работника?

Если, например, у вас есть только один рабочий, работающий на двухъядерном компьютере, то параллелизм по умолчанию будет равен 2. Это означает, что сразу можно выполнить только две задачи.

Вы можете изменить эту установку из рабочей командной строки с ключом:

-c N 

где N является числом параллельных задач

+0

Где настройка параллельности и пожалуйста, вы можете дать мне полную команду измените настройку. – pynovice

+0

Я сделал это, но я получаю эту ошибку: потребитель: не удается подключиться к amqp: //[email protected]: 5672 //: [Errno 111] Connection отказано. Повторить попытку через 6.00 секунд ... Я использую бэкэнд базы данных. – pynovice

+0

amqp по-прежнему необходим для обработки сообщений. Бэкэнд базы данных, который вы устанавливаете, вероятно, относится к результатам. Для системы очередей вы должны использовать настройку BROKER_URL = "django: //". См. Здесь: http://docs.celeryproject.org/en/latest/getting-started/brokers/django.html#broker-django – mpaf

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