Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
芹菜、Django、RabbitMQ(或Redis)和RPC的Backlog错误_Rabbitmq_Celery_Django Celery - Fatal编程技术网

芹菜、Django、RabbitMQ(或Redis)和RPC的Backlog错误

芹菜、Django、RabbitMQ(或Redis)和RPC的Backlog错误,rabbitmq,celery,django-celery,Rabbitmq,Celery,Django Celery,我有一个django应用程序,有时需要执行数百万个API请求。为了加快速度,我使用芹菜发送请求,并在消费之前等待响应 我曾尝试使用Redis作为代理和后端设置芹菜: CELERY_BROKER_URL = 'redis://localhost:6379' CELERY_RESULT_BACKEND = 'redis://localhost:6379' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_RESULT_SERIALIZER = '

我有一个django应用程序,有时需要执行数百万个API请求。为了加快速度,我使用芹菜发送请求,并在消费之前等待响应

我曾尝试使用Redis作为代理和后端设置芹菜:

CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SERIALIZER = 'json'
这给了我一个错误:backloglimited:54c6d0ce-318d-461b-b942-5edcd258b5f1

然后我改为RabbitMQ代理和RPC后端:

CELERY_BROKER_URL = 'amqp://guest@localhost//'
CELERY_RESULT_BACKEND = 'rpc://'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SERIALIZER = 'json'
同样的错误

我的API调用代码非常经典:

我有一个
url\u chunks=[[url1,url2…url1000],[url1,url2…url1000].
这是必需的,因为API速率限制为每分钟1000次(在每个调用组结束时,我睡眠1分钟)

我想所有的url调用/响应都被缓存在某个地方,并且超出了内存?但我认为RPC不会发生这种情况。我曾想过使用purge(),但也不起作用,因为RPC不支持它

有人知道怎么处理吗?我目前正在MacOS上的开发环境中运行,打算部署到Ubuntu

谢谢

for urls in urls_chunks:
    returned_data = []
    for url in urls:
        result = call_api.delay(url)
        returned_data.append(result)

for response in returned_data:
    result = response.result
    ## Do something with the result
    sleep(60)