Home > Blockchain >  Why my flask app can't handle more than one client?
Why my flask app can't handle more than one client?

Time:12-05

I created a simple flask application that needs authentication to have access to the data.

When I run this application locally it works fine (accepts more than one client), however when I host the app on railway or heroku it can't handle more than one client.

Ex: when I access the URL on a computer and log in, if I access the URL on my cellphone (different netowrk) I get to have access to that account logged in.

I'm using the latest version of flask and using flask_login to manage authentication.

Does anyone have any idea why it's happening?

I've tried everything I found out on Internet, such as using

app.run(threaded=True)

I've also set the numbers of workers on gunicorn command for exemple

Does anyone have any idea why it's happening?

CodePudding user response:

As official Flask's documentation says, never run your application in production in dev mode (what app.run() actually is).

Please refer to this section if you are going to deploy in self-hosted machine: https://flask.palletsprojects.com/en/2.2.x/deploying/

And if you are going to deploy to Heroku, you need to prepare for correct Procfile, like this:

web: gunicorn run:app

CodePudding user response:

I've just solved it.

My gunicorn was in sync way and would handle only one request at a time.

So I had insert threads number on Procifle in order to it change worker_class from sync to Gthread

My Procfile afterall:

web: gunicorn --threads 4 :$PORT index:app

https://docs.gunicorn.org/en/stable/design.html#choosing-a-worker-type

  • Related