【发布时间】:2017-12-11 04:13:35
【问题描述】:
我有一个 Python 脚本在命令行中运行 selenium 框架并持续运行以控制 Chrome 进行后台数据处理和监控。我的简化代码结构如下
while True:
Do_task1() # a blocking function
Do_task2() # another blocking fucntion
... # calling many blocking functions below, including wait(), time.sleep()
我需要一种随时随地中断脚本以暂停、安全终止和发出命令的方法。最好的方法是什么? 我已经考虑并尝试了几种方法,但我不确定如何处理它:
-
我试过这个:
if msvcrt.kbhit(): key = msvcrt.getch().decode("utf-8").lower() if key == "j": self.setting1 = True elif key == "k": self.setting2 = True在 while 循环中,但它必须通过一堆阻塞调用才能对我的按键做出反应。并且该命令并不能完全实时接受我的键盘输入,即我将输入一个字符输入,并且我认为它会在后台缓冲区中,然后一旦代码执行到上面的代码,它就会开始执行东西。 为了终止脚本,我只是在CMD窗口中按Ctrl-C,我认为这不是最好的方法,我应该正确结束程序结束后台进程,如Chromedriver。
我想有一个以某种方式异步运行的 GUI,我可以有按钮来暂停和终止脚本。但我不完全确定如何处理它,或者这是否是一个尝试的好主意。欢迎提出任何建议。
使用脚本监控/工作流监控框架,如AirBnB's Airflow 或 Luigi。我只是对此做了简短的研究。
A related question 但我不需要返回它离开的确切位置
【问题讨论】:
标签: python selenium automation frameworks monitoring