捕获和处理流程

时间:2018-05-18 17:02:42

标签: python multiprocessing

我想在python中创建包装器,它将捕获来自另一个python程序的输出,然后将该输出发送到多个位置,如logger和telnet服务器,但我坚持产生这些进程并且它的通信
我已经尝试使用子进程运行和捕获但我有问题它返回输出只有当进程退出时,大多数程序都处于基本的无限循环是不可接受的,例如我有这两个脚本

i = 0
running = True
while running:
    print(i)
    sleep(10) #simulate program idling
    if i == 20:
        running = False
    else:
        i += 1

print("Exit reached")

,第二个应该是这样的

program = "first_script.py"
program.start() #non blocking?

while program.exist:
    print(program.get_output())
    sleep(5)

所以因为它会每5秒要求输出它应该得到相同输出的2倍但是我不确定我是否应该考虑获得一些事件监听功能,它会将每一行添加到缓冲区或类似的东西每次从一些内部缓冲区询问整个输出时应该收到的例子 我的问题是我应该使用什么方法以及如何在捕获此输出并将其发送到另一个进程时使用

1 个答案:

答案 0 :(得分:0)

你可以这样做,使用FOR registro_notificacion IN (SELECT 'data' FROM my_table WHERE my_table.column1 BETWEEN 1 AND 3 ORDER BY my_table.column1) LOOP --work with data END LOOP; ,至少在我的测试中适用于Windows(我认为它也适用于其他操作系统):

subprocess