任务队列和非幂等任务
我正在开发一个投票应用,用户可以上传一个包含所有投票者电子邮件地址的列表。在进行了一些错误检查后,我为每个投票者创建一个 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)
不过,这个任务并不是幂等的。有没有办法让这个任务变得幂等?或者有没有更好的方法来实现这个?
1 个回答
1
使用一个键名,而不是uuid属性,这样可以避免创建重复的投票者实体。