flask deployment using internal werkzeug developme

2019-05-10 22:35发布

问题:

Why is it not recommended to use the flask/werkzeug internal development webserver in production? What sort of issues can arise?

I'm asking because in work I'm being forced to do so and use a make shift cron to re-run the service every day!

回答1:

If you're having to use a cron job to kill & restart it on a daily basis, you've already found a major issue with using the Flask development server. The development server is not written for stability, longevity, configurability, security, speed or much of anything other than convenience during development.

A proper WSGI setup will be faster, handle multiple connections properly and, most importantly for you, periodically restart your app process to clean out any cruft that might build up.



回答2:

I had a network call inside the response handler that had no timeout. Something went wrong and it was waiting for a while (I was using the requests module), and then apparently never recovered.

Since Werkzeug server had only one thread, the whole development server became completely unavailable.