gpt4 book ai didi

python - Django cache.set() 导致重复键错误

转载 作者:太空狗 更新时间:2023-10-30 03:08:06 25 4
gpt4 key购买 nike

我的 Django 站点最近开始从我的缓存代码中抛出错误,我不知道为什么...

我打电话:

from django.core.cache import cache
cache.set('blogentry', some_value)

而Django抛出的错误是:

TransactionManagementError: This code isn't under transaction management

但是看PostgreSQL数据库日志,好像是源于这个错误:

STATEMENT:  INSERT INTO cache_table (cache_key, value, expires) VALUES (E'blogentry', E'pickled_version_of_some_value', E'2009-07-27 11:10:26')
ERROR: duplicate key value violates unique constraint "cache_table_pkey"

对于我的生活,我无法弄清楚为什么 Django 试图执行 INSERT 而不是 UPDATE。有什么想法吗?

最佳答案

那是一场典型的比赛。它检查您插入的 key 是否存在;如果没有,它会插入,但其他人可以在计数和插入之间插入 key 。交易不会阻止这一点。

代码似乎预料到了这一点并尝试处理它,但是当我查看处理这种情况的代码时,我可以立即看到它被破坏了。此处报告:http://code.djangoproject.com/ticket/11569

我强烈建议坚持使用内存缓存后端。

关于python - Django cache.set() 导致重复键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1189541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com