问答 / 0 / 5 / 创建于 2年前
如题现在需要在业务中,生成唯一订单号有看过雪花算法有大佬有了解的吗?不太想用UUID
用一个定时任务专门生成订单号,写入到redis的list中,然后fpm直接从list中阻塞方式pop一个出来。 生成订单号程序的定时间隔,每次生成数量,list长度,要根据订单号的消耗速度进行设定。
redis
list
pop
生产环境,正在使用snowflake算法。
指定不同的DCID\WRKID即可避免并发冲突。
也可魔改增加一个时间步长或取微秒 DateTime::format(小u)
@Evilk 根据abs用户IP、id、商品id、等 mod 最大dcid和workid 取值。
这样等于每个用户+商品等信息 被分配到了某个虚拟的概念DC上。
我要举报该,理由是:
用一个定时任务专门生成订单号,写入到
redis
的list
中,然后fpm直接从list中阻塞方式pop
一个出来。 生成订单号程序的定时间隔,每次生成数量,list
长度,要根据订单号的消耗速度进行设定。生产环境,正在使用snowflake算法。
指定不同的DCID\WRKID即可避免并发冲突。
也可魔改增加一个时间步长或取微秒 DateTime::format(小u)