У меня есть этот простой скрипт, питона, который подключается к питанию ZMQ и выплевывает некоторые данные:переподключения к ZMQ корма после отключения
#!/usr/bin/env python2
import zlib
import zmq
import simplejson
def main():
context = zmq.Context()
subscriber = context.socket(zmq.SUB)
# Connect to the first publicly available relay.
subscriber.connect('tcp://relay-us-east-1.eve-emdr.com:8050')
# Disable filtering.
subscriber.setsockopt(zmq.SUBSCRIBE, "")
while True:
# Receive raw market JSON strings.
market_json = zlib.decompress(subscriber.recv())
# Un-serialize the JSON data to a Python dict.
market_data = simplejson.loads(market_json)
# Dump typeID
results = rowsets = market_data.get('rowsets')[0];
print results['typeID']
if __name__ == '__main__':
main()
Это работает на моем домашнем сервере. Иногда мой домашний сервер теряет связь с Интернетом, проклинание жилого подключения. Однако, когда сеть выходит и возвращается, сценарий останавливается. Есть ли способ повторно инициализировать соединение? Я все еще новичок в python, точка в правильном направлении была бы замечательной. =)
Динамический DNS? ZeroMQ будет решать только один раз, который может быть вашей проблемой. –
Я использую динамический DNS, да. У меня есть .it.cx имя хоста, указывающее на мой IP-адрес, который регулярно обновляется на моем маршрутизаторе. Если есть способ, которым я могу проверить через цикл, если есть соединение, и если не попробовать повторно подключиться? – Ryan
Вы должны периодически закрывать и повторно подключаться, чтобы повторно разрешить запись DNS. –