Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Datetime对象在while循环期间切换值_Python_Datetime - Fatal编程技术网

Python Datetime对象在while循环期间切换值

Python Datetime对象在while循环期间切换值,python,datetime,Python,Datetime,我在Python代码中看到了这个奇怪的问题,但不太清楚到底发生了什么。这段代码的背景故事非常简单,我有一个函数,我的UI脚本在启动时调用该函数,该函数在单独的线程中运行。此线程旨在调用单独模块中的函数,该模块检查数据库中存储的时间戳是否早于x_值,如果是,则执行填充操作 下面是函数(如果需要,我可以稍后发布更多代码,但这个函数就是问题所在): 结果输出如下所示: Now: 17:49:13 Last check time: 17:49:13 Now: 17:49:18 Last chec

我在Python代码中看到了这个奇怪的问题,但不太清楚到底发生了什么。这段代码的背景故事非常简单,我有一个函数,我的UI脚本在启动时调用该函数,该函数在单独的线程中运行。此线程旨在调用单独模块中的函数,该模块检查数据库中存储的时间戳是否早于x_值,如果是,则执行填充操作

下面是函数(如果需要,我可以稍后发布更多代码,但这个函数就是问题所在):

结果输出如下所示:

Now: 17:49:13   Last check time: 17:49:13
Now: 17:49:18   Last check time: 17:49:10
Now: 17:49:23   Last check time: 17:49:13
Now: 17:49:28   Last check time: 17:49:10
Now: 17:49:33   Last check time: 17:49:13
Now: 17:49:38   Last check time: 17:49:10
并继续执行此操作,直到if语句运行,“last_check”返回到两个值之间的波动


你有没有想过为什么会这样?它不会阻止整个程序最终完成它应该做的事情,但它非常烦人。

因此,对于将来可能偶然发现这一点的任何人来说,Flask应用程序中的“app.run\u server(debug=True)”会导致额外的线程在开始时运行。我不是百分之百地解释为什么会这样,但这似乎是造成我所描述的问题的原因


但是,在开发服务器上使用生产Flask应用程序,或者简单地将“debug”参数设置为False,将不会启动多个线程,并且此问题将消失。

您正在两个单独的线程中同时运行此函数。在代码中搜索对
tableUpdateCheck
的其他引用。在整个代码中只有一个地方调用此函数。除了函数定义之外,唯一提到它的地方是线程对象被实例化并作为目标传递函数的地方。我回去仔细检查了代码,只是为了确定。这与
线程相关吗?我的意思是,如果你没有在线程中运行函数,你是否检查了你是否得到了预期的行为?@MrFuppes我确实怀疑它与线程有某种联系,但我不确定它是如何做到的,我希望能在这里了解这一点。不过要回答你的问题,我没有试着自己运行它。我会在有机会的时候这样做,并更新结果。
Now: 17:49:13   Last check time: 17:49:13
Now: 17:49:18   Last check time: 17:49:10
Now: 17:49:23   Last check time: 17:49:13
Now: 17:49:28   Last check time: 17:49:10
Now: 17:49:33   Last check time: 17:49:13
Now: 17:49:38   Last check time: 17:49:10