问题标签 [flask-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何设置要在 Flask-Cache 中缓存的 url 的命中数?
如果第二个请求在给定的时间段内出现,Flask-cache 默认存储第二个请求。它不会维护第一个请求。作为参考,我用 nginix 查了一下,nginix 保存了第五个请求。我得到了一个保持相同信息的论点。
烧瓶缓存中是否有任何相同的参数可用?或者我只是更改默认点击数来存储网址?
python - Flask-Caching 使用 UWSGI 缓存和 NGINX
UWSGI 通过 UNIX-Socket 连接到烧瓶应用程序:
NGINX (监听 80 端口) <-> UWSGI (LISTER PER UNIX-SOCKER) <-> FLASK-APP
我已经初始化了一个 uwsgi 缓存来处理全局数据。我想用 python 包烧瓶缓存来处理缓存。
我正在尝试使用正确的缓存地址初始化缓存实例。似乎有什么不对劲。我认为,app.run() 的参数与 uwsgi 无关。
如果我正在设置一个缓存条目,它总是返回无:
主文件
uwsgi.ini
nginx.conf
我正在使用来自https://github.com/tiangolo/uwsgi-nginx-flask-docker的 docker 构建。该应用程序正在运行,期待缓存。
编辑
经过很长时间,我找到了解决方案:
请注意使用为 NGINX 生成多个进程。每个进程都处理自己的缓存。如果没有附加层,则无法从不同的 nginx 进程访问缓存
python - Flask Celery 任务锁定
我正在将 Flask 与 Celery 一起使用,并且我试图锁定一个特定的任务,以便它一次只能运行一个。在 celery 文档中,它给出了一个执行此Celery 文档的示例,确保一次只执行一个任务。给出的这个示例是针对 Django 的,但是我使用的是烧瓶,我已尽力将其转换为与 Flask 一起使用,但是我仍然看到具有锁的 myTask1 可以多次运行。
我不清楚的一件事是,如果我正确使用缓存,我以前从未使用过它,所以所有这些对我来说都是新的。文档中提到但未解释的一件事是
文档注释:
In order for this to work correctly you need to be using a cache backend where the .add operation is atomic. memcached is known to work well for this purpose.
我不确定这意味着什么,我是否应该将缓存与数据库结合使用,如果是,我将如何做到这一点?我正在使用 mongodb。在我的代码中,我只是为缓存设置了这个设置,cache = Cache(app, config={'CACHE_TYPE': 'simple'})
因为这是 Flask-Cache 文档的Flask-Cache Docs中提到的
myTask1
我不清楚的另一件事是,当我从我的 Flask 路线中调用我时,我是否需要做任何不同的事情task1
这是我正在使用的代码示例。
最终工作代码
这也是一个屏幕截图,您可以看到我运行myTask1
了两次,myTask2 运行了一次。现在我有了 myTask1 的预期行为。现在myTask1
将由一个工人运行,如果另一个工人试图拿起它,它将根据我定义的任何内容继续重试。
python - 在烧瓶中缓存函数
我有这段代码在我的机器上本地执行大约 9.2 秒。将其部署到 AWS ec2 盒子后,执行时间增加到 20 秒。
由于我之前没有实现任何缓存,我想知道我是否能够缓存特定函数的响应,或者我需要缓存我从外部获得的每个 POST。
本质上,我要的是如何缓存 POST 的结果,所以每当我再次运行它时,使用相同的参数它会使用缓存来加快响应速度。
PS我省略了一些不相关的功能,这不是完整的代码。为术语道歉,我是这个网络服务的新手。
python - Python Flask即使在更新后也会执行旧功能
我是使用 Flask 的新手。我已经为 Hello World 编写了基本的 Flask 代码,但在更新功能后,我仍然在网页上看到旧值。从我在其他帖子和博客上看到的内容来看,这可能是缓存问题。但我不确定如何清除它。
旧功能:
新功能:
我仍然Hello World
在网页中看到输出而不是Hello Hi
.
如果这有帮助,我正在 PyCharm 2018.2.5 中运行代码
先感谢您。
python - 烧瓶中的键错误
在使用烧瓶创建的浏览器中打开页面时出现错误。
我认为错误在于使用 get_cache。我试图解决这个错误,但无法得到确切的解决方案。我使用 from flask_caching import Cache 导入了缓存。我收到错误的 main_views 的代码如下:
追溯:
python - 烧瓶缓存类型错误:无法腌制 CompiledFFI 对象
我在 python 中使用pysaml2库。它有一个定义如下的方法:
其中,IDP.ticket = {}
是应用程序范围的简单键值映射(在原始 WSGI 应用程序中) 。这里IDP.ticket
在多个请求之间持续存在。下面的一些上下文。
被调用的路由是SSO().redirect,
- 最初
self.user
是False
由 self._store_request(saml_msg)设置密钥 - 然后用户返回一个表单,表单中设置了键,以便可以识别请求。在表单上提交SSO().redirect再次被调用
IDP.ticket
并获得在先前请求期间设置的值。
我想将此方法移植到烧瓶应用程序,但是当我使用带有Flask-Cache的烧瓶时,cache.set(key,saml_msg)
我得到错误:
我猜是因为它saml_msg
包含一个密钥
除了使用 Flask-Cache 之外,我如何在烧瓶中的多个请求之间存储状态?
编辑:。
这个问题与这个问题类似, 但我已经尝试过这个解决方案。我需要保存object
一个不简单的数据类型,所以当我使用 Flask-Cache 保存它时,我会得到`can't pickle CompiledFFI objects(也许这是AuthnRequest的问题对象,不能腌制)
flask.session
用于在请求之间存储密钥,它给出TypeError: Object of type AuthnRequest is not JSON serializable
.
完整的堆栈跟踪。
python - 缓存flask app函数基于url请求字符串
我正在尝试使用缓存工具在我成功完成的烧瓶应用程序中缓存 2 个函数。对 API 的 URL 请求格式类似于: URL- '***.com/rec/some_id/0/23413444;2134134124;4352352345'
但是当我想缓存这些函数并且 URL 请求发生变化时,这个逻辑有一些限制。最好将这些函数缓存到 URL 中的“some_id”保持不变。一旦 'some_id' 被更改并通过 URL,它必须从头开始,而不使用缓存函数。
这是我尝试过的。
必须做些什么来实现所需的逻辑?如果有人可以帮助我,那就太好了。
python - 如何通过烧瓶缓存获取存储在redis中的特定密钥
在我的烧瓶应用程序中,我使用烧瓶缓存来缓存查询结果,如下所示:
但是当我访问我的 redis 时,密钥就像flask_cache_L4kZRWHNrZYUZ8uyY7Mh0i
. 查询redis数据库进行测试似乎非常困难。因为如果我需要那个键的值,我必须使用Flask-Caching APIcache.get(<key>)
中的函数
所以我想问一下它在哪里有办法找到装饰器下函数返回值的键cache.memoize
?
python - 如何在我的项目结构中使用烧瓶缓存
我的代码结构。我试过但一直收到错误无法导入名称“缓存”。我想我的方法不正确,因为当我在外部文件中导入缓存时,缓存不会启动应用程序。