拜托,我需要一些帮助。我正在努力在 Windows 中的两个 python 进程之间发送通知。
我查看了信号模块,但不幸的是,Windows 不支持用户定义的信号。
Windows 使用其他称为消息的东西,但我不知道它是如何工作的或如何在 python 中使用它。如果有人对在 python 中的进程之间发送消息有想法或起点,我们将不胜感激。
最佳答案
这实际上取决于您要寻找的是什么 - 您是想要控制消息、非阻塞消息,还是像通常使用 signal
模块那样捕获外部信号的能力。
因为你想发送“两个 python 进程之间的通知”,我推荐 multiprocessing.connection
模块的 Client 和 Listener 类,用于一对非常简单的面向消息的连接对象:
http://docs.python.org/2/library/multiprocessing.html#module-multiprocessing.connection
进程A:
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'])
这些类是内置的这一事实让我很高兴——无需安装!只需小心遵循有关安全和 un-pickling 数据的文档指南。
关于python - 什么相当于使用 python 的 Windows 中的 sigusr1-2 信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429480/