每5分钟执行一个任务的Python脚本会一直空闲到

2024-05-14 18:31:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,每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)

程序调用perform_scan,然后休眠5分钟。奇怪的是,当我不看终端机的时候,剧本有点。。。暂停执行。下面是一个示例日志,向您展示我的意思:

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:432018-08-04 21:19:17之间的断点了吗?事情是这样的:

  1. 当时钟显示21:19时,我在屏幕上看到了2018-08-04 20:22:43 DESKTOP-VK5JO51 Scanner.py[2568] INFO Pause # 14
  2. 我按了ctrl-c
  3. 只有那时(!)2018-08-04 20:27:43 DESKTOP-VK5JO51 Scanner.py[2568] INFO Scanning...出现
  4. 接下来是其他几行,即脚本已恢复执行

这很奇怪,原因很多。第一,ctrl-c没有停止脚本执行。第二,2018-08-04 20:27:43处的日志仅在我在21:19左右击键之后出现。最后,我不明白我的ctrl-c是如何让脚本恢复活力的,因为它没有听用户输入或类似的东西

现在您可能会认为这是一些屏幕缓冲问题。但是应用程序将其请求的结果保存在数据库中。数据库中的条目与上面的日志一致:在20:2721:19期间,数据库中没有保存任何内容

有人知道发生了什么事吗


Tags: pyinfo脚本stringscancountersomeperform

热门问题