任务队列和非幂等任务

1 投票
1 回答
504 浏览
提问于 2025-04-16 21:41

我正在开发一个投票应用,用户可以上传一个包含所有投票者电子邮件地址的列表。在进行了一些错误检查后,我为每个投票者创建一个 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属性,这样可以避免创建重复的投票者实体。

撰写回答