生成稳定的递增id

最近有个项目数据库设计中需要用到分表, 假设记录文章的表,主键用一个id来标识文章的id。 由于各个表中的id不能重复,所以需要用一个外部的id生产程序。当然我们可以在数据库中单独新建一个表,利用表的自增属性来 生成这个id,但是这样子不够灵活。所以另外用python写了个生成id的程序。

      其中需要注意两点,

      1.要保证线程安全,所以变量递增的时候,必须添加锁。

      2.要保证该生成id的进程在被断电或意外强制结束(kill -9)后,下次重新启动的时候,再能从进程崩溃前的id继续递增,而不至于产生 以前产生过的id,就是说要保证内存中的数据实时的同步到硬盘。 第二点,python提供的anydbm模块或gdbm模块,其中打开文件的时候,有个s模式,即实时同步模式,能保证内存中的数据实时的同步到硬盘中。

 即使进程被被kill -9,数据也不会丢失。

猜你喜欢

转载自san-yun.iteye.com/blog/1668868
今日推荐