px普贤教程PuXian
普贤教程 › 包参考

snowflake 包

Snowflake ID

项值
包名snowflake
版本0.2.0
可用版本0.1.0 / 0.2.0
入口snowflake.px
分类标识、校验与版本
文件数 / 行数1 / 105

安装与引入

bash
pxpkg init          # 首次
pxpkg add snowflake@0.2.0
pxpkg install
px
import snowflake
所属分类教程:标识、校验与版本

公开接口

函数参数
sf_newmachine_id, opts={}
sf_nextstate, now_ms=null
sf_parseid, opts={}
其余 6 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
sf_to_base36id
sf_from_base36s
sf_extract_timeid, opts={}
sf_extract_machineid
sf_extract_seqid
sf_max_sequence

包内说明(源码头注释)

text
============================================================
普贤生态库:registry/snowflake —— Snowflake ID
------------------------------------------------------------
纯函数库(无 IO、无状态,状态以 dict 显式传递;时间源显式传入),双模式一致。
sf_new(machine_id[, opts]) → Ok(state) | Err   machine 0..1023(10 位)
sf_next(state[, now_ms])  → Ok(int id) | Err   41 位毫秒 + 10 位机器 + 12 位序列
sf_parse(id[, opts])      → {ms, machine, seq}(epoch 还原)
opts: {epoch_ms(默认 1288834974657 = Twitter 2010-11-04)}
同毫秒 seq 自增;越毫秒复位;seq 溢出 → Err(响亮)。窗口 69 年。
============================================================