我有一个大约一年前编写的python应用程序,使用redis并且运行完美。
我刚刚升级了系统O / S(ARCH),现在,除非我在加载初始redis变量之前添加了10秒的延迟,否则python脚本无法启动。
日志文件显示最后一个条目是' 1.Initialized:REDIS'并且脚本似乎退出,我看到没有错误,它只是死了。
奇怪的是,以前从未需要这个,而且我不确定为什么现在需要它?!
## Initilaize Redis
time.sleep(10)
global rc
rc = redis.StrictRedis(host='localhost', port=6379, db=0)
logger.info('1.Initialized: REDIS')
## Load Globals
global gdata
gdata = rc.hgetall('global')
logger.info('2.Loaded: GLOBALS')
在继续进行数据检索之前,是否可以等到redis准备就绪,而不是使用固定的延迟?
似乎任何尝试在活动之前进行redis调用都会导致崩溃
我尝试过使用ping,但这也会终止脚本:
## Wait for REDIS LIVE
ping = False
while ping == False:
try:
ping = rc.ping()
except:
pass
logger.info(str('Redis Alive:'+str(ping)))
time.sleep(1)