【发布时间】:2018-02-01 11:39:57
【问题描述】:
我有一个 Python (2.7) 脚本,它从文件中读取实时数据并将其(通过网络)发布到另一台计算机上的服务器。特别是,此服务器是graphite 的Carbon 服务器部分。
相关部分代码如下:
import socket
CARBON_HOST = 'COMPUTER-NAME'
CARBON-PORT = 2003
CARBON_PATH = 'folder.name.meaurement'
s = socket.socket()
s.connect((CARBON_HOST, CARBON_PORT))
while True:
if s:
s.send('%s %s %s\n'%(CARBON_PATH, str(data), int(time.time())))
time.sleep(WAIT)
data 是从我的文件中导入的最新条目,time 是通常的条目。
当我关闭Carbon 服务器所在的计算机COMPUTER-NAME 时,出现此错误:
s.send('%s %s %s\n'%(CARBON_PATH, str(data), int(time.time())))
socket.error: [Errno 10053] 已建立的连接被主机中的软件中止
当我重新启动主机 (COMPUTER-NAME) 时,我必须重新启动 Python 脚本才能再次发送数据。
有什么方法可以告诉socket 在发现它已断开连接时暂停,或者继续尝试直到连接再次打开?
【问题讨论】:
标签: python sockets graphite-carbon