在两个Python服务器之间发送消息
我有两台服务器,一台是Django,另一台可能是用Python写的。一台服务器负责往数据库里放“任务”,另一台则是处理这些任务。
它们共享一个数据库,但我希望处理任务的服务器能快速响应新任务,而不是定时去检查。
有没有简单的方法让这两台Python服务器互相沟通,还是说处理任务的服务器必须使用网络钩子之类的东西?
我觉得应该有一种比较好的方法来实现这个...
3 个回答
0
我通常会使用轮询。如果任务表不大,这样做其实不会消耗太多资源。
另外,你也可以实现一个网络服务,或者使用套接字连接。
你可以用SOAPpy来开始写网络服务的东西,或者直接扩展BaseHTTPServer之类的东西,来接收来自Django的消息(HTTP请求)。我觉得这样可能编程上会有点复杂,但如果任务不常出现,这可能是最整洁的解决方案。
不过,我建议你把自己搭建的小服务器放在一个安全的环境里;只有Django可以在那儿发HTTP请求,因为搭建一个安全的网络服务器并不简单。
编辑
我刚想到Twisted。如果你决定不使用消息队列,这可能是你服务器的完美网络部分(一些Twisted的例子)。
1