【发布时间】:2011-06-24 10:07:00
【问题描述】:
我正在寻找一种简单的方法来将消息从一个进程(Perl 脚本,短期)传递到另一个(Python 脚本,长期运行)——两个进程都位于同一台机器上. 我进行了一些研究,但发现的结果要么超出我的想象,要么看起来过于复杂——让我有点迷茫和困惑。
我想一个最小的例子大致如下:
# listener.py
class Listener:
def __init__(self, port)
self.port = port
def on_message(self, msg):
print "%s: %s" % (timestamp, msg)
recipient = Listener(1234)
# sender.pl
sub send_message {
my ($msg, $port) = @_;
# ...
}
send_message("hello world", 1234);
任何关于如何解决和/或在哪里阅读此问题的指针将不胜感激!
【问题讨论】:
-
你为什么不使用直接在 shell 中可用的 OS 管道?
python somescript.py | perl otherscript.pl应该可以正常工作。没有插座。 -
通过 POSIX-MQ 样式的消息发送还是可以使用套接字解决?
-
Python 脚本是一个长期运行的进程,并且管道消息只能在一次性的基础上工作(我认为 - 你不能管道到现有进程,对吗?)。举一个愚蠢的例子,假设
Listener是一个显示传入消息的桌面小部件(有点像tail -f mylog)。 -
@S.Lott:我以为我做到了!?无论如何,我目前正在阅读套接字和消息队列,当我有更多见解时会接受答案。
-
FWIW,我不是在寻找特定问题的最佳解决方案,而是试图了解一般概念 - 这就是为什么我保持 OP 相当抽象/通用的原因。答案为我提供了足够的数据,让我对什么是什么有一个基本的了解,所以我对结果很满意,我相信它会对处于类似情况的其他人有用。