Задачи и неидемпотентные задачи

Я работаю над приложением для голосования, где пользователь может загрузить список адресов электронной почты для всех избирателей. После некоторой проверки ошибок я создаю 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 ответ

Решение

Используйте key_name вместо свойства uuid, чтобы предотвратить создание дублирующих сущностей избирателей.

Другие вопросы по тегам