小编JQi*_*ian的帖子

Celery消息队列与AWS Lambda任务处理

目前,我正在开发一个基于NLP分析和可视化文本数据的系统。

后端(Python + Flask + AWS EC2)处理分析,并使用API​​将结果反馈到仅处理交互式可视化的前端(FLASK + D3 + Heroku)应用程序。

现在,原型中的分析是一个基本的python函数,这意味着在大文件上分析需要花费更长的时间,从而在API数据桥接到前端期间导致请求超时。以及许多文件的分析都是在线性阻塞队列中完成的。

因此,要扩展此原型,我需要将Analysis(text)函数修改为后台任务,这样它就不会阻止进一步执行,并且一旦函数完成就可以进行回调。输入文本是从AWS S3提取的,输出是一种相对较大的JSON格式,也打算存储在AWS S3中,因此API桥将简单地提取此JSON,其中包含前端应用程序中所有图形的数据。(我发现S3比创建大型关系数据库结构来存储持久数据要容易一些。)

我正在用Celery做一些简单的示例,并发现它很适合作为解决方案,但是我只是在AWS Lambda中进行了一些阅读,从规模上看,这似乎是一个更好的解决方案...

Analysis(text)函数使用一个预先构建的模型,并从相对常见的NLP python包中进行操作。由于我缺乏扩展原型的经验,因此我想询问您的经验,并判断哪种解决方案最适合这种情况。

谢谢 :)

nlp amazon-web-services celery python-2.7 aws-lambda

6
推荐指数
1
解决办法
2802
查看次数