Python事件处理程序

时间:2011-07-27 15:49:11

标签: python django-views multiprocessing

我正在尝试实现sort的事件处理程序。我尝试使用Popen使用外部进程收集示例网络捕获,并编写XML文件。我解析xml文件以收集我需要的任何信息。但是我不希望在数据包数达到一定限度之前终止进程。

def getPacketCount(xmlfile, count, pid):
    while 1:
        try:
            parser = minidom.parse(xmlfile)
            wlan = parser.getElementsByTagName('wireless-network')[0]
            pkt = wlan.getElementsByTagName('packets')[1]
            packetCount = pkt.getElementsByTagName('total').childNodes[0].data
            if packetCount>count:
                #Call event handler to kill process with given pid.
        except AttributeError, TypeError:
            print "AttributeError: Accessing file again"`

  • 这种方法有很多表现(因为它经常检查文件)吗?
  • 如何使此功能在后台运行(如守护进程?)
  • 使用多处理模块是否有意义?
  • 将Popen包装在函数中并调用多处理是否有效?

    Note: I am implementing this with Django to handle database operations.
    
  • 1 个答案:

    答案 0 :(得分:1)

    作为一个网络框架,django不适合事件驱动的编程;它更适合http的常规请求/响应周期。

    将文件轮询程序作为单独的脚本(可能使用INotify以避免频繁轮询文件)可能更有意义,然后它可以通过定期的http请求通知更大的Web应用程序用于此目的的资源,或更新应用程序使用的基础数据库。