簡體   English   中英

python-即使同時運行多個腳本,也會生成一個唯一的整數?

[英]python - generate a unique integer even if multiple scripts are running simultaneously?

我有一個可以快速將數據插入數據庫的函數,並且我還需要為每個函數存儲一個唯一的整數。

我當時考慮使用四舍五入時間,但是由於同時運行多個腳本,我擔心會出現沖突。

有人可以推薦解決方案嗎?

實際上,您應該更喜歡一種由數據庫遞增生成ID的機制。

您可以看看uuid模塊在Python端生成隨機ID:

此模塊提供了不變的UUID對象(UUID類)和函數uuid1(),uuid3(),uuid4(),uuid5(),用於生成RFC 4122中指定的版本1、3、4和5。

根據RFC 4122 [強調我的]:

該規范為UUID(通用唯一IDentifier)(也稱為GUID(全局唯一IDentifier))定義了統一資源名稱命名空間。 UUID的長度為128位,可以保證在空間和時間上的唯一性。 UUID最初在Apollo網絡計算系統中使用,后來在開放軟件基金會(OSF)的分布式計算環境(DCE)中使用,然后在Microsoft Windows平台中使用。

該規范是在OSF(現在稱為The Open Group)的許可下從DCE規范派生的。 DCE規范的早期版本中的信息已合並到本文檔中。

有幾種可能的方法:

  1. 將唯一ID的生成委托給數據庫引擎。 許多發動機提供了這樣的設施。
  2. 擁有自己的集中式服務,該服務將生成ID,並使腳本與該服務對話。
  3. 讓每個腳本生成自己的ID; 為了確保唯一性,請將對腳本唯一的令牌(例如,進程ID和/或IP或MAC地址)合並到ID中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM