问题标签 [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.

0 投票
1 回答
7695 浏览

flask - 如何使用烧瓶缓存和内存缓存?

下面是“简单”类型的烧瓶缓存示例,但我如何将烧瓶缓存与 memcache 一起使用?我需要你的帮助谢谢:)

0 投票
1 回答
618 浏览

python - 从视图控制烧瓶缓存

我想知道是否有办法允许用户使用Flask-Cache控制给定视图的缓存属性。

例如,除非用户单击链接,否则我希望无限期地缓存视图reload,在这种情况下,视图将被重新生成。我注意到@cached 装饰器有一个unless可用的kwarg,但我不确定如何使用它。

看来我应该可以在Jinja 模板的url_for('this_view', dont_cache=True)某个地方添加一个。this_view

0 投票
1 回答
5578 浏览

python - Flask - 数据加载的缓存结果

我正在烧瓶/python中编写一个服务器端应用程序,并且有一些必须加载以进行计算的数据的问题。加载数据(大约 40 MB)需要更长的时间来处理服务器响应,并且数据永远不会改变,所以我希望它只加载一次,在 apache 启动时有效。但是无论我尝试什么,每次请求进入时它都会重新加载并大大减慢速度。我可以通过下面显示的打印语句来判断,它为每个请求写入 apache 日志。我想加载数据,因此将该行写入日志,仅在启动时一次。

有趣的是,这只发生在脚本通过 WSGI 上的 apache 运行时——如果我从命令行使用 python 在本地运行它,数据加载只发生一次,服务器响应速度要快得多。

有什么想法吗?

我最近使用 flask_cache 的尝试是这样的:

编辑 - 谢谢 - 使用 before_first_request 并将“WSGIDaemonProcess myApp processes=1”添加到我的 WSGI 配置中就可以了。现在它保持进程运行,只是从中产生新的请求,而不是每次都重新运行 init。

0 投票
1 回答
2992 浏览

python - 缓存 Flask-Login user_loader

我有这个。

在我介绍 Flask-Principal 之前,它运行良好。

添加它会导致严重的性能问题。SQLALCHEMY_ECHO 显示每次加载静态文件时都会查询用户表。

在这个解决了重复查询问题的实验之后,我意识到我需要在我的 Flask 应用程序中引入缓存。以下是问题。

  1. 如何缓存User.query.get(id)
  2. 我什么时候需要清除这个用户缓存?
0 投票
0 回答
1002 浏览

python - Flask/SqlAlchemy、Flask-Cache、Celery 和 InvalidRequestError:实例“<...>”在此会话中不持久

我在这个问题上摸不着头脑。

我有一个带有 Flask-Cache 和 SqlAlchemy 的 Flask 应用程序:

芹菜工人:

还有一个通用的 get_or_create def:

我正在尝试使用缓存来解决导致 UniqueConstraint 违规的多处理(即,当两个工作人员同时插入非唯一对象时,一个应该在第一个插入后更新)

工人们在吐

InvalidRequestError:实例“<[Redacted]>”在此会话中不持久

我能弄清楚的最好的事情是我需要扩大会议的范围吗?

0 投票
1 回答
776 浏览

python - 使用以(或包含)子字符串开头的键获取或删除 Flask 中的缓存条目

我正在尝试删除缓存存储中包含(在本例中以)缓存键的子字符串开头的所有条目,但我没有看到任何简单的方法来执行此操作。我使用 Memcache 作为后端。

如果我正确理解了代码,我需要在调用deleteor时传递完整的缓存键delete_many。有没有其他方法可以做到这一点?

如果有更好的方法,我将解释我正在尝试做什么:我需要在某些用户修改其设置时清除缓存。清除缓存clear()将删除所有用户的缓存条目,大约 110K,所以我不想使用它。

key_prefix使用用户的 ID、请求的路径和其他变量生成。缓存键始终以经过身份验证的用户的 ID 开头。所以理想情况下我会使用类似的东西delete_many(user_id + ".*")

0 投票
0 回答
448 浏览

python - 如何在烧瓶缓存中配置后备 CACHE_TYPE?

使用配置为与 redis-server 实例一起使用的flask-cache,我的速度非常快。但是,如果 redis-server 变得不可用,我会收到一条错误消息:

由于 chaching 只是为了提高性能,我想配置一个回退(较慢)CACHE_TYPE(例如,simple)来处理 redis 服务器问题而不影响烧瓶功能。如果不可能,我希望以动态编程方式禁用缓存以防止任何烧瓶错误。

编辑

我试图自己解决问题:https ://github.com/paolinux79/flask-cache

0 投票
1 回答
962 浏览

python - flask:如何存储和检索 POST 调用?

我希望能够对所描述的路径进行 POST 调用,存储它们,并从user. 上面的代码运行,但有错误并且没有按需要执行。坦率地说,flask-cache 文档没有帮助。如何正确实现 cache.set 和 cache.get 以根据需要执行?

0 投票
1 回答
715 浏览

python - 检查用户是否是 Flask-Cache `除非`参数的匿名用户

我正在尝试缓存视图,除非用户已登录。 current_user但只能在视图内工作,所以我无法将其传递给unless=. 我该如何正确地做到这一点?

0 投票
1 回答
7008 浏览

amazon-web-services - AWS Elasticache - 增加 memcached 项目大小限制

我在我的 python Flask 应用程序中使用memcached模块(带有)AWS ElasticacheFlask-Cache

当我尝试设置一个小于1MB我需要重复访问缓存的文件时,我没有问题。但是当文件大小增加超过 MB(文件可能是文本文件/csv/xlsx 等)时,我收到以下错误

错误:来自 memcached_set 的错误 37:成功

我猜是因为 memcached 项目的大小限制为 1MB。如何在 AWS Elasticache 中将此项目限制增加到 5-6 MB?

在 memcached 中增加此项目大小限制是否有任何问题?