Я разрабатываю приложение на GAE/J и изучаю, как реализовать распределенную блокировку на нем.Распределенная блокировка на GAE/J
Мое требование совершенно одинаковое с this question. Но этот вопрос составляет около 7 лет, поэтому я не могу найти ответы на все вопросы. Также я не могу найти, что эти ответы работают на GAE/J.
Как я могу реализовать распределенную блокировку на GAE/J?
Благодарим за ответ. Одним из моих требований является «если замок держателя умирает, он будет автоматически освобожден через X секунд». Соответствует ли datastore это требование? –
Вы установили значение в хранилище данных, чтобы получить блокировку с использованием транзакции, после транзакции вы установили блокировку. Вы должны использовать наконец или что еще, чтобы обеспечить блокировку. У вас может быть процесс, который проверяет блокировку и отбрасывает ее, оценивая время (значение может быть меткой времени). Но ничего не получается из коробки. –
Когда процесс умирает, он, наконец, не выполняется. И метод timestamp нельзя использовать, потому что мы не можем гарантировать, сколько времени займет наша транзакция. –