V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  EchoUtopia  ›  全部回复第 9 页 / 共 15 页
回复总数  284
1  2  3  4  5  6  7  8  9  10 ... 15  
2017 年 7 月 17 日
回复了 EchoUtopia 创建的主题 程序员 redis 实现的一个锁有问题,求大神帮忙看看
@luoqeng 之前我说了,我测验的时候发现并没有超时,并且我的实现里面有 watch key,如果已经超时,应该是不会去删除 key 的

@zts1993 嗯,这个是别人的 lock,我的 lock 是直接去 setnx 的,都不行。超时时间是加了的,在 setnx 成功后,感觉这一步应该没问题,redis.py 没看到 set nx ex 一条命令的用法,要用 lua 脚本,我待会去试试。unlock 的 transaction 怎么用呢,这个是我为了超时加的,但是我的脚本里没有超时,这也是验证过的。


@lolizeppelin 协程多进程下还是会有同样的问题吧,你这个 ttl 操作有啥特殊原因么
2017 年 7 月 17 日
回复了 EchoUtopia 创建的主题 程序员 redis 实现的一个锁有问题,求大神帮忙看看
@sampeng 多线程也是一样,setnx 官方文档并没有说 setnx 是否是原子操作,但网上很多资料都把它当原子操作使用

@tr0uble 这个我考虑过,是因为获得锁的实例超时后导致把别人的锁给删掉,我这个超时时间设的5秒,获得锁的时间为 0.01 秒,我打印时间也表明没有超时

@RubyJack
@sampeng 这个我还没有去看,我现在只是很难过,我不知道到底哪出问题了,并且我没有一点办法,因为太菜,连调试的思路都没有,我之前假装 strace 了以下,问题又不重现了,估计是竟态条件不满足了。


@luoqeng 有可能是这个原因,但是线上时不时的出问题,应该是有问题的,线上的情景是:新创建用户我们给以下操作加锁:获取最后一个用户id,然后加一个随机数作为新用户id。然后并发的时候两个新用户获取到的 last_id 相同,并且随机数相同了,导致出问题。。
2017 年 7 月 16 日
回复了 yaozeyuan93 创建的主题 问与答 提交了一个 PHP 的 bug,忐忑
2017 年 7 月 16 日
回复了 yaozeyuan93 创建的主题 问与答 提交了一个 PHP 的 bug,忐忑
据说这类 bug 有点多,我以前也遇到过
只有一个实例写的话应该没问题
2017 年 7 月 10 日
回复了 liangmingyi 创建的主题 成都 成都应届毕业生开发岗位目前薪水是个什么范围
羡慕,工作两年都没达到最低水平
http 响应没有 post、get 这一说吧
2017 年 6 月 30 日
回复了 deigo42 创建的主题 问与答 分页,每一页内某个字段重复列不超过两条,怎么实现
order by seller_id, item_timestamp
2017 年 6 月 28 日
回复了 mortonnex 创建的主题 程序员 公司下周开始 995
最近 997 路过
2017 年 6 月 25 日
回复了 wweir 创建的主题 程序员 看到讨论录取分数线的降低,啥也不说,默默放个图
我看到了越来越多的剩男。。
2017 年 6 月 23 日
回复了 tangyuan 创建的主题 程序员 一个比较难堪的在这行中坚持的原因...
@blanu #31 这个是处方药,直接去药店能买到么,或者怎样能买到呢
2017 年 6 月 23 日
回复了 tangyuan 创建的主题 程序员 一个比较难堪的在这行中坚持的原因...
@blanu #9 请问你吃的啥药呢,虽然我现在比以前好多了(感谢编程),但是想试试
2017 年 6 月 22 日
回复了 alect 创建的主题 问与答 阿里云逗我玩呢,大半夜发邮件说我创建 OSS 成功。。
刚刚收到,正在担惊受怕中呢
这么多优越的工作条件已经很厉害了
2017 年 6 月 20 日
回复了 ray1888 创建的主题 Python Python 多进程问题
@ray1888 #8 其实就是一个 semaphores,它有个计数器,put 一次就加一,调用一次 task_done 表示当前对 queue 里面 get 到的东西处理已经完成,计数器减一,当queue里面的所有任务都完成后,锁就是释放了,join 就会取消阻塞,我自己是这样理解的,不知道会不会误导你。。
2017 年 6 月 20 日
回复了 ray1888 创建的主题 Python Python 多进程问题
@EchoUtopia #5 没仔细检查,没退出
import multiprocessing


def printt(q):
while 1:
if q.empty():
break
else:
data = q.get()
q.task_done()
print data


if __name__ == "__main__":
q = multiprocessing.JoinableQueue()
for i in range(5):
q.put(i)
for i in range(3):
process = multiprocessing.Process(target=printt, args=(q,))
process.start()
q.join()
print "over"

不知道这个满足楼主需求不
2017 年 6 月 20 日
回复了 ray1888 创建的主题 Python Python 多进程问题
import multiprocessing


def printt(q):
while 1:
if q.empty():
break
else:
data = q.get()
print data


if __name__ == "__main__":
q = multiprocessing.JoinableQueue()
for i in range(5):
q.put(i)
while 1:
for i in range(3):
process = multiprocessing.Process(target=printt, args=(q,))
process.start()
q.join()
2017 年 6 月 11 日
回复了 EchoUtopia 创建的主题 程序员 学习 golang 的时候, copy 了份在线文档出来
@jimisun #16 看项目需求或者自己兴趣吧,项目需求不得不学,感兴趣想学就学。两者都有就更好了哈哈
2017 年 6 月 10 日
回复了 EchoUtopia 创建的主题 程序员 学习 golang 的时候, copy 了份在线文档出来
@jiqing #11 可以看原项目的进度,我当时做的时候就没出来。

@sagaxu #13 官方文档还没仔细研究,感觉更像是 api,先把教程看了再去研究

@renshaojuncool #12 能帮到就好,嘻嘻
@memorycancel #14 能帮到我就很开心
2017 年 6 月 10 日
回复了 EchoUtopia 创建的主题 程序员 学习 golang 的时候, copy 了份在线文档出来
@Juggernaut #9 真的好尴尬,写了半天,结果链接都没贴。。已经补充啦
1  2  3  4  5  6  7  8  9  10 ... 15  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2935 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 14:30 · PVG 22:30 · LAX 07:30 · JFK 10:30
♥ Do have faith in what you're doing.