coolair
V2EX  ›  问与答

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

  •  
  •   coolair · Mar 8, 2018 · 2333 views
    This topic created in 3171 days ago, the information mentioned may be changed or developed.
    想用 Flask 写一个服务,为各个应用提供自动生成的 ID。

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

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

    有没有什么好的解决方法或者类似项目可以借鉴?
    谢谢。
    7 replies  •  2018-03-08 23:26:11 +08:00
    AlwaysBehave
    AlwaysBehave
    Mar 8, 2018 via Android
    1
    uuid 了解一下
    Yourshell
    Yourshell
    Mar 8, 2018 via iPhone
    2
    异步?
    Pastsong
    Pastsong
    Mar 8, 2018
    3
    uuid 啊。。
    coolair
    coolair
    OP
    Mar 8, 2018
    5
    @Pastsong
    @AlwaysBehave
    按规则生成,不能用 uuid
    troywinter
    troywinter
    Mar 8, 2018
    6
    snowflake, 不需要考虑其它的,直接实现 snowflake 算法就行
    AlwaysBehave
    AlwaysBehave
    Mar 8, 2018
    7
    @coolair … uuid+你自己定义的规则
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4877 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 02:39 · PVG 10:39 · LAX 18:39 · JFK 21:39
    ♥ Do have faith in what you're doing.