Я пытаюсь реализовать систему блокировки ID, управляемую RMI. В значительной степени, когда клиент вводит идентификатор, он отправляет этот идентификатор вместе с сервером RMI, который хранит его в списке, вместе с идентификатором клиента и счетчиком циклов.Java RMI Heartbeat цикл процесса
Сервер, через 30 секунд, увеличит все счетчики циклов. Если клиент не отправит сообщение Unlock, клиент отправит его по Heartbeat, который будет обновлять этот счетчик циклов до 0. Если счетчик циклов> = 3, сервер предположит, что клиент отключился ненадлежащим образом и отменил блокировку на ID.
Я изучаю онлайн, и я нашел много очень конкретных способов сделать это, но слишком много, которые кажутся слишком расплывчатыми или слишком специфичными для потребностей одного проекта. Я думаю, что у меня есть общее представление о том, как это сделать, но я хочу получить прямо:
1 - В большинстве реализаций эта логика «цикла обновления» происходит в бесконечном цикле на отдельном потоке. Это верно? Кажется, что мой основной класс RMI-сервера очень мало развивается, и возможно, я мог бы реализовать цикл там.
2 - Если, конечно, нить - это правильный путь, когда я запускаю нить? Есть ли какой-то особый способ, которым это нужно выполнить? Я посмотрел онлайн и обнаружил, что многие сайты говорят, что используют потоки, но ни один из них не показывает хороший пример того, где они выполняют поток.
Спасибо за любую помощь, которую вы можете предоставить. Я все еще немного зеленый с RMI, поэтому я благодарю вас за ваше терпение.
Вы должны использовать интерфейс Unreferenced для части этого. Это делает проверку на живости для вас. – EJP
Я прочитал интерфейс Unreference. Похоже, он срабатывает только тогда, когда клиентов не будет подключено к серверу. Мне нужно было бы, чтобы он срабатывал каждый раз, когда сервер был отменен любым клиентом. – UtMan88