当前位置:首页 > 编程技术 > 正文

按时间分表id如何生成器

按时间分表id如何生成器

1. 时间戳:使用当前的时间戳作为ID的一部分。2. 机器标识:确保ID在多台机器上唯一。```pythonimport timeimport threadingcla...

1. 时间戳:使用当前的时间戳作为ID的一部分。

2. 机器标识:确保ID在多台机器上唯一。

```python

import time

import threading

class IDGenerator:

def __init__(self, machine_id):

self.machine_id = machine_id

self.lock = threading.Lock()

self.sequence = 0

def _get_timestamp(self):

return int(time.time() 1000) 获取当前时间戳,单位毫秒

def _get_sequence(self):

with self.lock:

if self.sequence == 0:

time.sleep(0.001) 短暂休眠,等待下一秒

return self.sequence

def generate_id(self):

timestamp = self._get_timestamp()

machine_id = self.machine_id

sequence = self._get_sequence()

return f"{timestamp:016d

最新文章