我已将I / O绑定的gunicorn \ flask服务推送到heroku。 Heroku docs advise to either increase the number of gunicorn workers or to use async threads such as gevent。我尝试了以下Procfile
,但服务仍然按顺序处理文件上传请求。我没有添加任何应用程序级锁。
多个进程Procfile
:
web: gunicorn service:app --log-file=- --workers 4
多个帖子Procfile
:
web: gunicorn service:app --log-file=- --threads 4 --worker-class gevent
所有服务都接收JSON请求,对其进行反序列化并将二进制文件上传到S3。日志表明限制因素是每个请求仅在最后一个请求完成后处理。
是否存在heroku或烧瓶固有的东西阻止并行处理多个请求?
AFAIK代码与工作人员数量无关,但它是否也与线程数无关?或者我应该在代码中添加某种支持。