MilletChili's recent timeline updates
MilletChili

MilletChili

V2EX member #360709, joined on 2018-11-04 09:09:03 +08:00
MilletChili's recent replies
摸爆
@MilletChili 说错了,redis 单线程
python 代码
# 加锁判断当前分片是否是最后一个
is_last_slice = False
if redis_helper.incr(sign) == slice_num:
is_last_slice = True

# with transaction.atomic():
# if SliceLock.objects.select_for_update().filter(sign=sign).first():
# if slice_num == len(os.listdir(temp_dir_path)):
# is_last_slice = True
# else:
# code, msg, data = (GlobalsCode.Err, 'sign 不存在', {'slice_name': slice_f.name})
# return retCORS(code, msg, data)
@h4de5 嗯,我之前说的不太清楚,应该是阿里云 oss 都是同步着传的,不会有并发的问题。我这边找到一个比较好的方案了,用 redis 的 incr,每保存一个分片就 incr 一下分片数,redis 单进程的不受并发影响,而且基于内存还快,比关系数据库开事务加锁快多了
@mlxj 文件 id 指的是啥? MD5 值吗
@h4de5 阿里云 oss 的 sdk 都是安顺序一个一个分片传的,我开几个线程异步着传分片的情况呢
@MilletChili 我说的是最后几个分片哈
@mlxj 但请求是异步的啊,在判断<当前分片数==总数> 前,得加锁,不加的话,可能出现多个分片上传的请求中判断<当前分片数==总数>都成立或不成立的情况
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5793 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 756ms · UTC 02:58 · PVG 10:58 · LAX 19:58 · JFK 22:58
♥ Do have faith in what you're doing.