2013-05-07 96 views
1

請幫我一下。我努力在Windows中發送兩個python進程之間的通知。什麼等價於使用python的windows中的sigusr1-2信號?

我查看過信號模塊,但不幸的是,用戶定義的信號在Windows中不受支持。

Windows使用其他稱爲消息的東西,但我不知道它是如何工作的或如何在Python中使用它。如果有人有一個想法或起點在python進程之間發送消息,將不勝感激。

回答

0

嘗試使用zeromq進行通過套接字進行的進程間通信。

0

這真的取決於你在找什麼 - 無論你想控制消息,非阻塞消息,還是像通常使用signal模塊那樣捕獲外部信號的能力。

既然要「兩個Python進程之間的通知」送我推薦multiprocessing.connection模塊的客戶端和監聽器類非常容易的面向消息的對連接對象:

http://docs.python.org/2/library/multiprocessing.html#module-multiprocessing.connection

進行中的:

listener = Listener(('localhost', 9000)) # local TCP connections on port 9000 
remote_conn = listener.accept() 
listener.close() 
print remote_conn.recv() 
# prints 'a pickle-able object' 
print remote_conn.recv() 
# prints "['another', 'pickle-able', 'object']" 

在方法B:

client = Client(('localhost', 9000)) 
client.send('a pickle-able object') 
client.send(['another', 'pickle-able', 'object']) 

這些類內置的事實讓我開心 - 無需安裝!只要注意遵循關於安全性和不酸洗數據的文檔指南。

相關問題