Число пользователей 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, чтобы отслеживать, если соединение уже открыто, и возвращать ошибку, если оно есть.

Другие вопросы по тегам