ddd*_*ddd 6 python queue multithreading celery flask
我正在使用Flask-restplus构建REST API.我的一个端点从客户端上传文件并运行一些分析.这项工作最多使用30秒.我不希望这项工作阻止主要进程.因此,端点将立即返回200或201的响应,该作业仍可以运行.结果将保存到数据库中,稍后将检索该数据库.
对于长期工作,我似乎有两种选择.
线程相对简单.但问题是,Flask app的线程数有限制.在独立的Python应用程序中,我可以使用队列作为线程.但这是REST api,每个请求调用都是独立的.我不知道是否有办法维护全局队列.因此,如果请求超出了线程限制,它将无法获取更多请求.
使用Celery和Redis的任务队列可能是更好的选择.但这只是一个概念验证的事情,时间线有点紧张.使用Flask设置Celery,Redis并不容易,我在我的dev机器上遇到了很多麻烦.它将部署在AWS上,这有点复杂.
我想知道这个案子是否有第三种选择?