按时间分表id如何生成器
- 编程技术
- 2025-01-26 07:43:17
- 1
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
本文链接:http://www.xinin56.com/bian/346352.html