Число пользователей Python RPyC
Я хочу использовать RPyC для предоставления API для аппаратной платы в качестве службы. Доска может обслуживать только одного пользователя одновременно. Можно ли как-нибудь заставить RPyC обеспечить, чтобы только один пользователь мог получить доступ одновременно?
1 ответ
Решение
Я не уверен, что это будет работать (или работать хорошо), но вы можете попробовать запустить OneShotServer внутри цикла, таким образом, в любой данный момент подается только одно соединение. Когда соединение закрыто, сервер завершается, и вы запускаете еще один для следующего клиента.
Что-то вроде:
is_aborting = False
while not is_aborting:
server = OneShotServer(myservice, *args, **kwargs)
# serve the next client:
server.start()
# done serving the client
Если это не сработает, лучше всего подкласс ThreadedServer и переопределить метод _accept_method, чтобы отслеживать, если соединение уже открыто, и возвращать ошибку, если оно есть.