我已经做了两个应用程序的之间:通信的两个Python应用程序
- 第一个就是提取一个网站的所有链接蜘蛛。
- 第二个对第一个应用发送的每个链接都进行一些检查。
当第一个应用程序找到一个链接时,我该如何向第二个应用程序发送通知或其他内容?
第二个应用程序必须连续监听第一个应用程序发送的数据。
我发现几个帖子说Queue
但我真的不明白这是如何工作。
有人可以解释我与一个简单的例子如何沟通这两个应用程序?
感谢的
我已经做了两个应用程序的之间:通信的两个Python应用程序
当第一个应用程序找到一个链接时,我该如何向第二个应用程序发送通知或其他内容?
第二个应用程序必须连续监听第一个应用程序发送的数据。
我发现几个帖子说Queue
但我真的不明白这是如何工作。
有人可以解释我与一个简单的例子如何沟通这两个应用程序?
感谢的
你想一个文件保存为“模块”被其他文件导入。这里可以使用import
关键字来实现。例如,如果您命名应用程序的第二部分listener.py
,则可以在其他文件中键入import listener
(请记住将它们放在同一文件夹中!),并从第二个文件中调用任何方法。 You can read more on Python modules here.
有各种各样的方法来完成进程间通信,但最简单的是使用文件系统。让你的蜘蛛把它输出到临时文件。完成后,将其移动到第二个进程定期轮询的文件夹中,以及何时找到工作,然后对其进行处理。
的spider
可能喜欢的东西,如:
import tempfile, os
tmpname = ''
with tempfile.NamedTemporaryFile(delete=False) as tmp:
tmpname = tmp.name
tmp.write("spider output....\n")
tgt = os.path.join('incoming', os.path.basename(tmpname))
os.rename(tmpname, tgt)
第二个过程可能是这个样子:
import time, os
while 1:
time.sleep(5)
for item in os.listdir('incoming'):
work_item = os.path.join('incoming', item)
with open(work_item) as fin:
# do something with item
os.unlink(work_item)
这些答案中没有任何一个能解决您的问题吗?请参阅[如果有人回答我的问题,我应该怎么做?](http://stackoverflow.com/help/someone-answers) – martineau