С написания ТЗ и поиска разработчика на Python, который напишет недостающий класс для подключения по TCP вместо COM.
Но прежде чем давать такое ТЗ разрабу, лучше конечно удостовериться, что если команду отправить ко COM-порту и такую же отправить через какой-нибуть netcat/telnet - получится одинаковый ответ от устройства. Тогда можно с уверенностью сказать что только транспорт для этого протокола отличается.
Ну и как eegmak советует - так же можно поступить. Если из всего протокола требуется разве что одна команда, проще разработать софтинку/скриптик которая эту команду и отправляет. Хоть используя тот же bash и netcat, если уж совсем упрощать. А дальше такой скрипт можно скормить, например, Заббиксу. Или Nagios. Или ещё какой системе мониторинга.
Виктор Путин, логично. С любым циклом так будет, пока ваш алгоритм продолжит учитывать лишь проверку последнего. Нужно либо прерывать цикл при первой же ошибке, либо устанавливать флаг, что при проверке были найдены ошибки, либо придумайте какой-то свой вариант
Похоже, протокол по COM/Ethernet идентичный. Можно брать за основу pyshtrih и, наследуясь от Device, заменить подключение через com на установку tcp-соединения. В теории, сработает.
Muxauko, нет, блокировки нужны на уровне БД с применением транзакций.
Чтобы что-то еще сказать, хорошо бы указать какие операции с базой асинхронно не работают (один простой UPDATE может выполняться без последствий), какой движок БД используется (так как InnoDB уже по умолчанию все запросы выполняет транзакционно), в какую ошибку вываливается. Там один UPDATE или ещё какие-то запросы?
Muxauko, хм, понятно. Это вопрос не к драйверу, или языку, а к тому как вы с SQL работаете. Используйте блокировку на строках которые меняете, используйте транзакции для атомарных изменений. Вариантов решения много - они будут зависеть от вашей бизнес-логики.
Главной таблицей для paragraph является manual - оставьте язык только в manual.
Связь author и manual - один ко многим. И тут зависит от того как создается новая запись в авторах. Если автор заводится отдельно от мануала = поле lang ему нужно для упрощения последующеего связывания с мануалом в качестве фильтра. Если автор создается одновременно с мануалом и просто матчится по имени - lang можно опустить, в нем нет смысла. В особенности в приведенном примере, где en и de написание имени автора идентичны.
Виталий Гусев, Спарк - коммерческий продукт,
как работает smart-search в деталях - публично неизвестно. Стоит обратиться в поддержку спарка с проблемой поиска, как они и пишут в своей доке.
Можно проверить на стороне сервера - используется ли imap search. Если нет - то это чисто кривизна клиента. Если использует - значит ещё можно покрутить конфигурацию сервера, в надежде что это как-то поможет Спарку. Кстати, какой у вас IMAP сервер?
kaw1994, ssh позволяет строить туннели, пробрасывать порты или выступать в качестве socks-proxy. Поэтому , установив туннельное соединение с таким сервером, далее можно подключаться любым другим TCP протоколом.
kaw1994, если это под ваши задачи - космолет, то стандартный способ - обычная виртуалка с linux. Администраторы по ssh/vnc /rdp подключаются к виртуалке и только с нее могут администрировать весь парк железок. Т.е. железки должны принимать подключения только с этого сервера или определенного management VLAN, в котором они все находятся, а сервер управления туда смотрит одним из своих интерфейсов.
Важно такую виртуалку защитить от установки левого ПО и доступов в интернет.
Ещё бы понимать что в этих таблицах, какие ещё поля. Возможно эта проблема в денормализованной без необходимости базе данных и эти две иаблицы следует слить в одну. И проблема с необходимостью union уйдет