成功运行100个任务后,芹菜批量执行将停止

时间:2019-09-23 11:59:56

标签: python celery

我在Celery中执行以下逻辑:

  1. 使用requests(最大2 MB)从AWS S3下载文件
  2. 将文件(使用大约100%的CPU)处理为输出文件
  3. 使用boto将输出文件上传到AWS S3(至少2 MB)
  4. (使用pymongo更新与该文件有关的Mongo数据库集合。

现在,此过程可以很好地运行并且任务已完成(对于一个任务,大约需要2秒,考虑到上面第2点中提到的处理逻辑,这对于我来说是可以接受的)。

但是,如果我发送大量要执行的任务(大约5000个),则Celery在完成大约100个任务后会挂起

这意味着我看不到日志的更多输出。没有错误日志,也没有其他类型的日志表明Celery陷入了逻辑。它根本不接受任何新任务。

要注意的另一件事是,我的Celery任务是从对Flask服务器的请求触发的,所以,是的,对于5000个Celery任务,对我的Flask服务器进行了5000个请求。

我已经尝试过的内容

  1. 实施Batches
  2. 设置我对AWS S3的所有请求的超时时间
  3. 将Celery并发设置为10

这些解决方案均无效。

问题

我如何配置Celery以成功完成可能达到一百万的任务?

其他信息

Celery版本:4.0.2

Python版本:2.7

服务器:具有8 GB RAM的双核

消息代理:Redis

0 个答案:

没有答案