Нужна конкретика, что делает сервер, что делают клиенты.
Без неё - самый простой вариант - это HTTP/xmlrpc, готовые решения уже есть в стандартной библиотеке.
pythonMyLife, ну раз нада, значит надо писать их таким образом чтобы они работали так, как хочешь. В доке есть пример того как нужно реализовывать дескрипторы, чтобы в инстансах классов они работали независимо
Ryssine, Я тебе ссылку дал в своем ответе. Ясно короче, думал адекватный чел пришёл вопросы задавать, оказалось он как все, ботописец только в профиль...
АртемЪ, Ну так финансовый крах потерпит компания, закроется, работников сократят, а им кредиты платить, детей одевать, если компания устраивает то почему бы и не переживать за её успех, особенно когда сам на него повлиять можешь.
Ярослав, и как описанные проблемы решает вебсокет и тем более лонгполлинг? Клиент ушёл в оффлайн и сменил интерфейс? Ну пусть при запуске оповестит сервер что такой-то клиент теперь здесь, а слушает вот здесь, а если были сообщений новые, ну так сервер в ответе на такой запрос их и вернёт.
Если хочется все посложнее сделать, то смотри cloud mqtt провайдеров, их полно
Иван Шумов, А я и не предлагаю по крону этого делать. Про «локальный» веб сервер мне претензии непонятны
Ярослав, https://docs.python.org/3/library/http.server.html
У клиента в отдельном треде запускаешь serve_forever(), живёшь себе спокойно, ожидая запросы с сервера.
Зачем тут лонгполлинг, вебсокеты? Особенно когда в задаче явно написано, что оповещение, в виде хттп запроса с сервера, будет кидаться раз в неделю.
Почему при наличии выбора asyncio/twisted - предпочтение отдаётся twisted? asyncio это же тоже не только про http, хотя там много готового в этом направлении.