Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 缓存-烧瓶_Python_Flask - Fatal编程技术网

Python 缓存-烧瓶

Python 缓存-烧瓶,python,flask,Python,Flask,我为不同的图像处理任务编写了一个Python Flask应用程序。如果我想在同一张图像上执行多个图像处理任务,那么反复发布同一张图像似乎是多余的。因此,我想知道我是否可以在我的应用程序中包含某种缓存,用于存储最近发布的10幅图像 import ..... app = Flask(__name__) @app.route('/processing/task1', methods=["POST"]) def task1(): ... return @app.route('/processing

我为不同的图像处理任务编写了一个Python Flask应用程序。如果我想在同一张图像上执行多个图像处理任务,那么反复发布同一张图像似乎是多余的。因此,我想知道我是否可以在我的应用程序中包含某种缓存,用于存储最近发布的10幅图像

import .....

app = Flask(__name__)

@app.route('/processing/task1', methods=["POST"])
def task1():
...
return

@app.route('/processing/task2', methods=["POST"])
def task2():
...
return

@app.route('somethingcompletelydifferent', methods=["POST"])
def different():
...
return

if __name__ == '__main__':
app.run(debug=config.app['debug'], port=config.app['port'], host=config.app['host'])
我的目标是当我跑步的时候

answer = requests.post("http://localhost:5000/processing/task1", files=arg).content
arg中包含的图像仅在尚未(暂时)传输的情况下传输。在应用程序中有这样做的方法吗?我现在真的很困惑,不知道怎么做——可能是因为我缺少该领域的一些术语和基本知识,无法有效地用谷歌搜索它。。。谢谢


(我使用的是python 3.7)

您可以使用lrucache来实现这一点

from functools import lru_cache

@lru_cache(maxsize=32)
def process():
   # ur code 

看看这篇文章:好吧,我已经读了好几遍了。我想它确实回答了我的问题?但我又一次感到越来越困惑,无法将它应用到我的具体问题上^^“关于我的问题:我不应该缓存?我不能缓存正在发送的图像?我不能缓存任务的结果#()函数?我可以缓存,但一旦有新的POST请求,缓存就会被清空…这对我来说就没用了?嗨,我建议你多读一些关于HTTP堆栈的内容。@lijo jose建议在函数上缓存,但这并不能阻止你通过网络传输图像。如果客户端的代码是你的,他的想法可能会奏效。B但是,您似乎希望在服务器端实现它,并为任何类型的客户端工作。在这种情况下,您的后端如何在不自行接收图像的情况下知道图像是否已被处理?一个想法是对图像进行哈希处理,并创建另一个服务,在调用另一个处理图像的方法之前检查该哈希是否已发送这就是整个图像。