我在Celery中执行以下逻辑:
requests
(最大2 MB)从AWS S3下载文件boto
将输出文件上传到AWS S3(至少2 MB)pymongo
更新与该文件有关的Mongo数据库集合。现在,此过程可以很好地运行并且任务已完成(对于一个任务,大约需要2秒,考虑到上面第2点中提到的处理逻辑,这对于我来说是可以接受的)。
但是,如果我发送大量要执行的任务(大约5000个),则Celery在完成大约100个任务后会挂起。
这意味着我看不到日志的更多输出。没有错误日志,也没有其他类型的日志表明Celery陷入了逻辑。它根本不接受任何新任务。
要注意的另一件事是,我的Celery任务是从对Flask服务器的请求触发的,所以,是的,对于5000个Celery任务,对我的Flask服务器进行了5000个请求。
我已经尝试过的内容
Batches
这些解决方案均无效。
问题
我如何配置Celery以成功完成可能达到一百万的任务?
其他信息
Celery版本:4.0.2
Python版本:2.7
服务器:具有8 GB RAM的双核
消息代理:Redis