当前位置:  开发笔记 > 编程语言 > 正文

Django原子增加初始值

如何解决《Django原子增加初始值》经验,为你挑选了0个好方法。

我正在尝试在Django缓存中进行原子增加或创建操作.我正在使用memcache作为后端.Memcache客户端的incr_async()功能需要initial_value参数.意思是:

如果密钥尚未存在于缓存中并且您指定了initial_value,则密钥的值将设置为此初始值,然后递增.

但是,我不知道如何在Django中执行此操作,因为cache.incr()文档说:

如果尝试递增或递减不存在的缓存键,则会引发ValueError.

我当然可以这样做:

cache.add(key,initial_value)
cache.incr(key)

但这不是原子的,可能导致竞争条件.

有没有办法绕过这个,这将保持操作的原子性?

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有