Я использую Django 1.7.3 в качестве моей рамки и Tastypie 0.11.1 в качестве библиотеки api для отдыха. У меня есть базовая модель с полем имени и api для создания этой модели.Django Tastypie атомная операция
Моя проблема связана с критическими разделами (условиями гонки) при попытке создать модель.
Я попытался transaction.atomic и установил ATOMIC_REQUESTS = True на уровне db, и все же, когда я отправляю два запроса в качестве расы, я получаю две одинаковые строки.
Есть ли способ гарантировать, что функция сохранения Tastypie будет атомарной? или каким-либо образом обеспечить, чтобы запросы были атомарными?
Его перераспределенная система с несколькими серверами. Я не могу заблокировать его, чтобы обрабатывать только один запрос каждый раз. –
Я хотел бы помочь вам, но на самом деле нечего делать. Если запросы обрабатываются не по порядку, нет ничего, что может сделать с тастипией, возможно, вы можете настроить балансировщик нагрузки и/или обратный прокси-сервер для отправки запросов на тот же сервер, что и раньше, для каждого пользователя/сеанса. Чтобы точно убедиться, что это так, вы могли бы добавить некоторое промежуточное программное обеспечение для ведения журнала, которое добавляет заголовок X с текущей меткой времени в миллисекундах или более высокой точностью. Я также не понимаю, почему вы не можете сделать один запрос за другим. –