Мы пытаемся создать алгоритм/эвристику, которая будет планировать доставку в определенный период времени, но здесь определенно есть условие гонки, в результате чего два конфликтующих запланированных элемента могут быть написанный в БД, потому что запись не является атомной.Избегайте условия гонки для вставки модели в БД на сложных условиях
Единственный способ по-настоящему предотвратить условия гонки - создать некоторую операцию с атомной вставкой, TMK.
Сервер получает запрос на планирование чего-либо в течение определенного периода времени, и сервер должен проверить, доступен ли этот период времени, прежде чем он записывает данные в БД. Но в то время сервер мог получить аналогичный запрос и в конечном итоге написать конфликтующие данные.
Как обходить это? Есть ли способ создать какой-либо скрипт в самой БД, который перехватывает операцию записи, чтобы сделать все это атомом? Поместив механизм блокировки на этот скрипт? То, что делает все неатомное, - это чтение и время проводов между сервером и БД.
Похоже, что у вас возникают проблемы с созданием конкретной работы с кодом. В этом случае мы можем быть более полезными, если вы разместите [минимальный код, воспроизводящий проблему] (http://stackoverflow.com/help/mcve). –
этот вопрос может принадлежать программистам.stackexchange? –