我有一个程序,每5分钟执行一系列HTTP请求。这是一个非常简化的版本,所以您有了主意:
from time import sleep
class Scanner:
def perform_scan(self):
self.log("Scanning...")
make_blocking_request()
# ... more HTTP requests, logging of some strings, writing to DB...
if __name__ == '__main__':
scanner = Scanner()
counter = 0
while True:
scanner.perform_scan()
counter += 1
scanner.log('Pause #', counter)
sleep(300)
程序调用{{1}},然后睡眠5分钟。奇怪的是,当我不看终端时,脚本...会暂停执行。这是一个示例日志,向您展示我的意思:
perform_scan
看到2018-08-04 20:17:38 DESKTOP-VK5JO51 Scanner.py[2568] INFO Pause # 13
2018-08-04 20:22:38 DESKTOP-VK5JO51 Scanner.py[2568] INFO Scanning...
2018-08-04 20:22:39 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 20:22:40 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 20:22:41 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 20:22:43 DESKTOP-VK5JO51 Scanner.py[2568] INFO Pause # 14
2018-08-04 20:27:43 DESKTOP-VK5JO51 Scanner.py[2568] INFO Scanning...
2018-08-04 21:19:17 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:25 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:25 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:26 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:27 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:29 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:29 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:31 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:31 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:32 DESKTOP-VK5JO51 Scanner.py[2568] INFO Some string
2018-08-04 21:19:35 DESKTOP-VK5JO51 Scanner.py[2568] INFO Pause # 15
和2018-08-04 20:27:43
之间的中断吗?这是怎么回事:
2018-08-04 21:19:17
,当时钟显示2018-08-04 20:22:43 DESKTOP-VK5JO51 Scanner.py[2568] INFO
Pause # 14
21:19
ctrl-c
这很奇怪,原因有很多。第一,2018-08-04 20:27:43 DESKTOP-VK5JO51 Scanner.py[2568] INFO Scanning...
没有停止脚本执行。第二,ctrl-c
上的日志仅在我在2018-08-04 20:27:43
左右的击键之后出现。最后,我不明白我的21:19
是如何使脚本重生的,因为它没有收听用户输入或类似的内容。
现在您可能会认为这是一些屏幕缓冲问题。但是应用程序将其请求的结果保存在数据库中。数据库中的条目与上面的日志一致:在ctrl-c
和20:27
期间,数据库中未保存任何内容。
有人知道发生了什么事吗?