023-11-13 10:00:00 - ERROR - AttributeError("'NoneType' object has no attribute 'publish'",)
蒋老师,不知你们实时模拟交易的时候是否出现以上错误,策略设置了两个时点交易,9:30交易的正常,redis客户端顺利收到消息,但是10:00的交易,聚宽交易正常,但是redis出错了,看上述消息,大概是redis连接关闭了
我看了下代码
if hasattr(g, 'rds_connected') and g.rds_connected:
return g.__dict__.get('__redis')
好像只是判断g.rds_connected 并没有判断redis连接是否断开了
或者是变量rds已经被释放了,所以变成NoneType?是否应该将rds设置为全局变量?好像rds全局变量也不行,应该是聚宽运行策略时关闭了连接?所以应该判断rds是否为NoneType
def _open():
if hasattr(g, 'rds_connected') and g.rds_connected:
rds = g.__dict__.get('__redis')
if rds is not None:
return rds
@妙手
def open():
if hasattr(g, 'rdsconnected') and g.rds_connected:
rds = g.__dict.get('__redis')
if rds is not None:
return rds
修改下open函数,判断一下rds是否有效,有效返回,否则重新连接