Потратил неделю на поиски решения проблемы самостоятельно. Силы и терпение иссякли.
Ситуация такая:
1. Пишу простой питоновский скрипт для работы с базой данных Firebird, который собираюсь разместить на сервере Pythonanywhere.
2. База находится на стороннем сервере (доступ к нему через SSH есть)
3. Задача слушать события БД (от заранее созданного триггера в БД - создание новой записи) и по факту такого события осуществить ряд действий.
Итог:
1. Тунель запустил
2. К базе подключился
3. SQL запросы к БД работают (вытащит инфу могу)
4. На локале работает и event_conduit (работа триггера четко отслеживается)
5. Но только размещаю скрипт на Pythonanywhere - первых 3 пункта работают, а 4 (именно выполнение метода event_conduit) вызывает ошибку сокета и разрыв связи с БД.
Выглядит так:
Traceback (most recent call last):
File “trigger.py”, line 53, in <module>
event = con.event_conduit(, timeout=10)
File “/home/agmorev/.local/lib/python3.8/site-packages/firebirdsql/fbcore.py”, line 795, in event_conduit
return EventConduit(self, event_names, timeout)
File “/home/agmorev/.local/lib/python3.8/site-packages/firebirdsql/fbcore.py”, line 492, in __init__
self.sock = SocketStream(ip_address, port, timeout)
File “/home/agmorev/.local/lib/python3.8/site-packages/firebirdsql/socketstream.py”, line 46, in __init__
self._sock = socket.create_connection((host, port), timeout)
File “/usr/lib/python3.8/socket.py”, line 807, in create_connection
raise err
File “/usr/lib/python3.8/socket.py”, line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
НА ЛОКАЛЬНОЙ МАШИНЕ ВСЕ РАБОТАЕТ
Подскажите, пожалуйста, в чем проблема и, если не тяжело, что делать.