Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Cellery具有多个具有特定并发性的工作者_Python_Django_Celery_Django Celery_Celery Task - Fatal编程技术网

Python Django Cellery具有多个具有特定并发性的工作者

Python Django Cellery具有多个具有特定并发性的工作者,python,django,celery,django-celery,celery-task,Python,Django,Celery,Django Celery,Celery Task,我必须从数据库(oracle)调用一些存储过程。我使用芹菜和redis以异步方式调用此SP tasks.py @task def carga_ftp(): tabla = Proc_Carga() sp = tabla.carga() return None @task def conci(idprov,pfecha): conci = Buscar_Conci() spconc = conci.buscarcon(idprov,pfecha)

我必须从数据库(oracle)调用一些存储过程。我使用芹菜和redis以异步方式调用此SP

tasks.py

@task
def carga_ftp():
    tabla = Proc_Carga()
    sp = tabla.carga()
    return None

@task
def conci(idprov,pfecha):
    conci = Buscar_Conci()
    spconc = conci.buscarcon(idprov,pfecha)
    return None
我需要为每个任务指定不同的并发性。对于任务CONCI,我需要1的并发性,对于任务CARGA_FTP,需要3或更多的并发性

celery multi start -A provcon conc carga -c:conc 1 -c:carga 3
文件settings.py中的我的芹菜设置

BROKER_URL = 'redis://localhost:6379/0'
CELERY_IMPORTS = ("pc.tasks", )
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_RESULT_BACKEND='djcelery.backends.cache:CacheBackend'
CELERY_ROUTES = {"tasks.conci": {"queue": "conc"}, "tasks.carga_ftp": {"queue": "carga"}}
但工人“CONC”同时执行多个任务,工人“CARGA”也同时执行多个任务

当我看到这个过程

ps aux | grep 'celery'
我看到工人“CONC”有两个流程,工人“CARGA”有四个流程

我不知道我是否错过了什么,或者我的突击队是否执行芹菜是错误的。 但是我一次只需要一个任务来完成任务“CONCI”

有什么建议吗


提前感谢

当你开始做芹菜工人时,它就开始了

  • 消费者过程和
  • 工人池
  • 因此,如果启动并发度为1的工作进程,它将有2个进程。对于并发性为3的工作进程,它有4个进程


    芹菜异步处理任务。它将立即使用给定的任务,但每次执行1个。

    感谢您的解释,但我为一个工作进程指定了1的并发性,我启动了任务,几分钟后我再次启动同一任务,我在数据库中看到了同时运行的任务(任务调用存储过程)