我有一个长时间运行的Python脚本,它收集来自Twitter的tweets,我想知道每隔一段时间它是如何运行的。在
目前,我正在使用signal
库捕捉中断,此时我调用print函数。像这样:
import signal
def print_info(count):
print "#Tweets:", count
#Print out the process ID so I can interrupt it for info
print 'PID:', os.getpid()
#Start listening for interrupts
signal.signal(signal.SIGUSR1, functools.partial(print_info, tweet_count))
每当我需要我的信息时,我打开一个新的终端并发出我的中断:
^{pr2}$有更好的方法吗?我知道我可以在预定的时间间隔内编写脚本,但我更感兴趣的是了解随需应变,以及可能发出其他命令。在
我个人把信息写到一个文件中,这样我就可以得到它了,尽管这样做的缺点是速度可能会稍微慢一点,因为它必须在每次或每隔几次检索tweet时写入一个文件。在
如果您可以在cd2>中输入一个文件{cd3>,那么您可以在cd2}中输入任何一行。如果你想停下来,只要
Ctrl-C
。在向进程发送信号会中断进程。下面您将找到一种使用专用线程来模拟python控制台的方法。控制台作为unix套接字公开。在
示例程序:
^{pr2}$示例会话:
这是一个非常强大的工具,可用于:
甚至更多。在
下面是一个长期运行的程序示例,它还维护一个状态套接字。当客户端连接到套接字时,脚本会将一些状态信息写入套接字。在
您可以编写一个简单的Python客户机来连接到套接字,也可以使用类似于
^{pr2}$socat
的方法:相关问题 更多 >
编程相关推荐