示例#1
0
class Monitor(Thread):
    def __init__(self, refresh_period=None):
        if refresh_period is None:
            self.refresh_period = datetime.timedelta(minutes=15)
        super(Monitor, self).__init__(name="Monitor")
        # create project list
        self.project_list = ProjectStore(
        )  # ProjectStore(pg_connection_string=config["pg_connection_string"])
        self.project_list.load_from_db()
        self.running = True

        # command listener
        self.server = CommandServer(self, config)
        self.server.start()

    def run(self):
        while self.running:
            start_time = datetime.datetime.now()
            # compute desired hashtags
            print "Computing hashtags ..."
            desired_hashtags = list(
                set([
                    el for item in map(
                        lambda p: p.filter_hashtags(percentage_or_greater(0.01)
                                                    ),
                        # five_or_greater,
                        self.project_list.active_projects.values())
                    for el in item
                ]))
            for project in self.project_list.active_projects.values():
                project.reset()
            calculation_time = datetime.datetime.now() - start_time
            # start reader object(s)
            self.readers = [
                TweetListener(self.project_list, config),
            ]
            if desired_hashtags != []:
                if len(desired_hashtags) > 400:
                    desired_hashtags = desired_hashtags[0:400]
                for reader in self.readers:
                    reader.start(desired_hashtags)
            else:
                print "No hashtags found; sleeping ..."
            # sleep for interval minus last calculation time
            time.sleep((self.refresh_period - calculation_time).seconds)
            for reader in self.readers:
                reader.stop()
        self.server.stop()
        print "Shutting down monitor thread: falling off end of run() ..."

    def stop(self):
        self.running = False
示例#2
0
    def __init__(self, refresh_period=None):
        if refresh_period is None:
            self.refresh_period = datetime.timedelta(minutes=15)
        super(Monitor, self).__init__(name="Monitor")
        # create project list
        self.project_list = ProjectStore(
        )  # ProjectStore(pg_connection_string=config["pg_connection_string"])
        self.project_list.load_from_db()
        self.running = True

        # command listener
        self.server = CommandServer(self, config)
        self.server.start()
示例#3
0
class Monitor(Thread):
    def __init__(self, refresh_period=None):
        if refresh_period is None:
            self.refresh_period = datetime.timedelta(minutes=15)
        super(Monitor, self).__init__(name="Monitor")
        # create project list
        self.project_list = ProjectStore() # ProjectStore(pg_connection_string=config["pg_connection_string"])
        self.project_list.load_from_db()
        self.running = True
        
        # command listener
        self.server = CommandServer(self, config)
        self.server.start()

    def run(self):
        while self.running:
            start_time = datetime.datetime.now()
            # compute desired hashtags
            print "Computing hashtags ..."
            desired_hashtags = list(set([el for item in map(
                lambda p: p.filter_hashtags(percentage_or_greater(0.01)), 
                # five_or_greater,
                self.project_list.active_projects.values()) for el in item ])
            )
            for project in self.project_list.active_projects.values():
                project.reset()
            calculation_time = datetime.datetime.now() - start_time
            # start reader object(s)
            self.readers = [TweetListener(self.project_list, config),]
            if desired_hashtags != []:
                if len(desired_hashtags) > 400:
                    desired_hashtags = desired_hashtags[0:400]
                for reader in self.readers:
                    reader.start(desired_hashtags)
            else:
                print "No hashtags found; sleeping ..."
            # sleep for interval minus last calculation time
            time.sleep((self.refresh_period - calculation_time).seconds)
            for reader in self.readers:
                reader.stop()
        self.server.stop()
        print "Shutting down monitor thread: falling off end of run() ..."

    def stop(self):
        self.running = False
示例#4
0
 def __init__(self, refresh_period=None):
     if refresh_period is None:
         self.refresh_period = datetime.timedelta(minutes=15)
     super(Monitor, self).__init__(name="Monitor")
     # create project list
     self.project_list = ProjectStore() # ProjectStore(pg_connection_string=config["pg_connection_string"])
     self.project_list.load_from_db()
     self.running = True
     
     # command listener
     self.server = CommandServer(self, config)
     self.server.start()