python, 大家看看为什么这个循环偶尔跳不出来?

ff = pymongo.MongoClient(server, 27017)['capital']['fund_flow']
print('I AM HERE2')
sig = None
while True:
    df = pd.DataFrame(list(ff.find({'date': today})))
    if df['今日主力净流入:'].iloc[-1] < dn:
        sig = -1
        break
    now = datetime.datetime.now()
    if now - today > datetime.timedelta(hours=10):
        break
    time.sleep(10)
print('I AM HERE3')

就是这样一段简单的程序,每天运行一次。程序每隔10秒查询数据库(由另外一个程序负责更新),如果条件满足,就跳出循环,打印'I AM HERE3'。
但是偶尔会遇到情况,只打印了'I AM HERE2',没有打印'I AM HERE3'。说明程序卡在这个循环里面出不来了,有谁知道是上面原因吗,谢谢各位!

另外程序是由一个.bat文件运行的。这个情况只是偶尔出现,我今天重复了20000遍了,就没有重复这个错误。

两个if条件没满足呗,把判断时的值打印到日志里面,然后判断成功了的时候也打一个日志

既然你10秒执行一次,那说明本来你的数据就不是一开始就会满足条件,否则根本没必要用while,就直接出去了
那么既然你的数据有可能不满足条件
那么一整天甚至好几天都没有任何数据满足条件,有什么可稀奇的吗

不好意思,忘了说,到10点钟也会自动跳出循环。大家看代码