服务使用了 python3.7,sanic 框架,使用临时文件的大概代码如下:
import os
import sys
import logging
import traceback
import sanic
import asyncio
import matplotlib.pyplot as plt
app = sanic.Sanic('My color patch service', load_env='MY_COLORPATCH_')
def _worker(request):
data = request.pop('data')
longitudes = [r[0] for r in data]
latitudes = [r[1] for r in data]
values = [r[2] for r in data]
fig = plt.figure(figsize=(10, 10), dpi=90)
'''
draw image by matplotlib
'''
image_file = os.path.realpath('out1.png')
fig.savefig(image_file, transparent=True)
plt.close(fig)
return image_file
def _worker_wrap(request):
try:
return _worker(request)
except KeyboardInterrupt as e:
raise e # rethrow the Ctrl+C Exception, for terminate the worker process
except:
return traceback.format_exc(limit=5)
@app.route('/gen_color_patches', {'POST'})
async def make_color_patch(request):
loop = asyncio.get_event_loop()
resp = await loop.run_in_executor(None, _worker_w

博客内容讲述了如何在使用Python Sanic框架的服务中,通过BytesIO对象代替临时文件,以减少IO时间,提高效率。示例代码展示了如何在生成颜色块图像时直接返回内存中的图像数据,避免了文件写入和读取的过程。
最低0.47元/天 解锁文章
993





