1
我正在開發一個投票應用程序,用戶可以在其中上傳所有選民的電子郵件地址列表。在做了一些錯誤檢查之後,我爲每個選民創建了一個Voter
實體。由於可以有大量的選民,我的任務隊列創建Voter
實體,以避免在30秒的限制和任務看起來是這樣的:任務隊列和非冪等任務
put_list = []
for email, id in itertools.izip(voter_emails, uuids):
put_list.append(Voter(election = election,
email = email,
uuid = id))
election.txt_voters = ""
put_list.append(election)
db.put(put_list)
這個任務,但是,是不是冪等。有沒有辦法讓這個任務是冪等的?還是有更好的方法來做到這一點?
我喜歡這個想法,但我關心數據存儲調用的數量。在上面的代碼中只有一個放。要使用命名密鑰,我想我必須爲每個投票者(一個非常大的數字)加上一個投票者的get_or_insert。是否可以使用命名密鑰進行批量操作? –
即使使用key_name,你也應該能夠使用put(),並且新實例將替換舊的所有屬性。目前還不清楚你需要uuid。我可能會做這樣的事情'Voter(parent = election,key_name = email)' – SingleNegationElimination
@TokenMacGuy,使用電子郵件作爲關鍵名是一個好主意。我需要UUID來防止選民欺詐(UUID發送給選民的電子郵件)。我認爲我不希望選民與選舉處於同一個實體組織,但我會就此提出另一個問題。 –