想用 Python 写一个 ID 生成器如何解决并发获取产生重复 ID 的问题?

2018-03-08 17:16:58 +08:00
 coolair
想用 Flask 写一个服务,为各个应用提供自动生成的 ID。

需要获取 ID 的应用---->登录获取 Token---->通过 Token 附带一些参数(比如:ID 类型,ID 生成规则)获取 ID

现在问题主要有:
有一个删除服务,在应用 APP 中删除业务时需要删除生成器对应的 ID,使得 ID 可以重复利用,因此每次生成 ID 时需要查询是否有重复 ID,使得效率很低,而且并发高时,容易生成重复 ID。

有没有什么好的解决方法或者类似项目可以借鉴?
谢谢。
1846 次点击
所在节点    问与答
7 条回复
AlwaysBehave
2018-03-08 17:20:53 +08:00
uuid 了解一下
Yourshell
2018-03-08 17:31:25 +08:00
异步?
Pastsong
2018-03-08 17:36:35 +08:00
uuid 啊。。
einverne
2018-03-08 17:36:56 +08:00
coolair
2018-03-08 18:17:46 +08:00
@Pastsong
@AlwaysBehave
按规则生成,不能用 uuid
troywinter
2018-03-08 19:03:15 +08:00
snowflake, 不需要考虑其它的,直接实现 snowflake 算法就行
AlwaysBehave
2018-03-08 23:26:11 +08:00
@coolair … uuid+你自己定义的规则

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/436210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX