python持续运行5秒钟,未到结束时间自动跳出了,是什么情况呢

场景:希望持续执行脚本5秒钟
问题:程序未执行完,退出了
描述:以下两种方法都试过,都是同样的现象,不知道啥情况,希望大佬们能帮忙解答一下,谢谢!
源码:

def test_time(self):
        start_run_time = datetime.datetime.now()
        end_run_time = start_run_time + datetime.timedelta(seconds=5)
        print(f'start_run_time:{start_run_time}')
        print(f'end_run_time:{end_run_time}')
        i = 0
        while True:
            if start_run_time <= end_run_time:
                print(f"第{i}次打印")
                i = i + 1
                print(f'循环打印后的i为:{i}')
                start_run_time = datetime.datetime.now()
                print(f'循环后的时间:{start_run_time}')
            else:
                break
        print(f'跳出循环后的i:{i}')
        print(f'跳出循环后的时间:{start_run_time}')

 def test_time2(self):
        end = int(time.time()) + 5
        print(f"start-time:{int(time.time())}")
        print(f"start-time:{end}")
        j =0
        while (int(time.time()) <= end):
            print(f"working:{j}")
            j=j+1
            print(f"当前循环后的time:{int(time.time())}")
        print(f"最终循环后的j:{j}")
        print(f"最终循环后的time:{int(time.time())}")

未执行完就退出的具体现象是什么?

image
image

你在循环里加个sleep(1),日志太多了,pycharm没显示出来。。所以你看到的不是最终时间

那这样子的话,这个压测的时间就不准确了哦;本身这个脚本就是压,在指定时间内,持续发送消息;到达指定时间,停止发送消息。

在运行的时候添加-s参数 不要捕获原本的输出 这样就可以看到原本真正的输出内容了
这个只是因为输出的内容没有完全打印出来而已 实质上执行是正常的