19 lines
		
	
	
		
			879 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			879 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from crazy_functions.agent_fns.pipe import PluginMultiprocessManager, PipeCom
 | 
						|
 | 
						|
class EchoDemo(PluginMultiprocessManager):
 | 
						|
    def subprocess_worker(self, child_conn):
 | 
						|
        # ⭐⭐ 子进程
 | 
						|
        self.child_conn = child_conn
 | 
						|
        while True:
 | 
						|
            msg = self.child_conn.recv() # PipeCom
 | 
						|
            if msg.cmd == "user_input":
 | 
						|
                # wait futher user input
 | 
						|
                self.child_conn.send(PipeCom("show", msg.content))
 | 
						|
                wait_success = self.subprocess_worker_wait_user_feedback(wait_msg="我准备好处理下一个问题了.")
 | 
						|
                if not wait_success:
 | 
						|
                    # wait timeout, terminate this subprocess_worker
 | 
						|
                    break
 | 
						|
            elif msg.cmd == "terminate":
 | 
						|
                self.child_conn.send(PipeCom("done", ""))
 | 
						|
                break
 | 
						|
        print('[debug] subprocess_worker terminated') |