2013-03-09 73 views
2

我有芹菜任务是这样的:Django芹菜一次只运行两项任务?

@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 2013-03-11 09:03:11

+0

我这样做,但我得到这个错误:消费者:无法连接到amqp://[email protected]:5672 //:[Errno 111]连接被拒绝。 在6.00秒内重试... 我正在使用数据库后端。 – pynovice 2013-03-11 09:24:40

+0

amqp仍然需要处理消息。您正在设置的数据库后端可能是结果。对于排队系统,您应该使用BROKER_URL =“django://”设置。看到这里:http://docs.celeryproject.org/en/latest/getting-started/brokers/django.html#broker-django – mpaf 2013-03-11 10:22:41