2016-06-28 2 views
0

Я разрабатываю приложение на GAE/J и изучаю, как реализовать распределенную блокировку на нем.Распределенная блокировка на GAE/J

Мое требование совершенно одинаковое с this question. Но этот вопрос составляет около 7 лет, поэтому я не могу найти ответы на все вопросы. Также я не могу найти, что эти ответы работают на GAE/J.

Как я могу реализовать распределенную блокировку на GAE/J?

ответ

0

Вы можете совершить транзакцию через хранилище данных, с помощью которого вы можете реализовать распределенный замок на нем. https://cloud.google.com/appengine/docs/java/datastore/transactions

+0

Благодарим за ответ. Одним из моих требований является «если замок держателя умирает, он будет автоматически освобожден через X секунд». Соответствует ли datastore это требование? –

+0

Вы установили значение в хранилище данных, чтобы получить блокировку с использованием транзакции, после транзакции вы установили блокировку. Вы должны использовать наконец или что еще, чтобы обеспечить блокировку. У вас может быть процесс, который проверяет блокировку и отбрасывает ее, оценивая время (значение может быть меткой времени). Но ничего не получается из коробки. –

+1

Когда процесс умирает, он, наконец, не выполняется. И метод timestamp нельзя использовать, потому что мы не можем гарантировать, сколько времени займет наша транзакция. –

Смежные вопросы