获取“使用python-stompy(orbited)发送数据时的闹钟”

时间:2013-01-03 01:31:28

标签: python stomp orbited

我想创建一个日志监视器,因此它监视日志并解析日志然后保存到数据库并通过stomp推送该数据。是的,它成功地推送数据,但在我推送数据后,我收到错误消息> "Alarm Clock" and the program stopped !

这是我的代码:

def sent_msg(msg,channel)    
    try:
        stomp = Client(host="localhost", port=54123)
        stomp.connect()
        stomp.subscribe(channel)
        signal.alarm(1)
        stomp.put(msg, destination=channel)
        signal.alarm(0)
    except Exception,err:
        print err
    else:
        print 'succes'


try:
    msg = """
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>
    """%(ip,dt,time,ua,req)
    sent_msg(msg,'/monitor_sqli')
except Exception, err:
    print err
else:
    print 'exist'

1 个答案:

答案 0 :(得分:0)

在第一个signal.alarm(0)阻止后,将finally:移至else:阻止,以确保无论stomp.push(msg, destination=channel)成功与否,都会清除闹钟。

执行此操作将帮助您专注于失败的真正原因,我怀疑这是stomp.push(msg, destination=channel)抛出异常的结果 - 可能是因为远程服务器的返回值无法通过stomp解析库。