写入磁盘

时间:2018-08-29 17:15:07

标签: python-3.x flask flask-restful

我正在使用flask_restful编写一个后端烧瓶应用程序。

我有1个端点,它将读取一些文件并作出响应。

首先,我启动开发服务器,然后使用gevent

from gevent.pywsgi import WSGIServer

# app.run(port=9788, threaded=True, debug=True)

http_server = WSGIServer(('', 9788), app)
http_server.serve_forever()

然后,我编写了另一个python脚本,该脚本发出100个随机请求,并将它们放在Pool()中。没有502

到目前为止,太好了。

我添加了另一个端点,该端点用于查询数据,并将结果作为csv写入磁盘上的文件。

我再次运行了脚本,并向第二个端点运行了1个请求。

第二个请求正在写入磁盘上的文件时,所有请求都将挂起。一旦完成,他们将重新开始。

这是我的代码段。

if __name__ == '__main__':
    app = Flask(__name__)
    api = Api(app)
    api.add_resource(DownloadCSVQuery, '/query_to_csv')  # Route_3

class DownloadCSVQuery(Resource):
    def post(self):
        msg, is_succeed = self.begin_download(request.json)
        return msg, 200 if is_succeed else 500

    def begin_download(self, input_query):
        # some code to query the data
        # open a new file with 'w' option
        # use csv.writer to start writing 

我不应该写磁盘吗?那甚至是一个原因吗?如果是这样,有什么解决方法?

例如,我可以通过直接写到S3来解决此问题,但是我将拥有第三个端点,在上传到S3之前需要将其写入本地二进制文件。

0 个答案:

没有答案