Esempio n. 1
0
 def __init__(self, config_file):
     config = ConfigParser.ConfigParser()
     config.readfp(open(config_file))
     self.log_file = config.get("Logging", "file")
     logging.basicConfig(filename = self.log_file, level = logging.DEBUG, format = "%(levelname)8s || %(asctime)23s || Module %(module)15s:%(lineno)3d || %(message)s")
     self.db_params = [config.get("SQLite", "database")]
     self.db = database(self.db_params)
     self.wake_interval = int(config.get("Agent", "wake_every"))
     self.local_timezone = pytz.timezone ("America/New_York")
     self.woke_at = self.utc_for(datetime.now())
     self.tasks = dict([(t.taskName, t) for t in tasks.TaskTypes]) 
     self.ST_user_cache = []
     self.ST_TN_cache = []
     self.expire = False
     self.blackboard = {}
     self.start_time = datetime.now()
     self.last_status = datetime.now()
     logging.info("Initialized agent with config: %s", config_file)
Esempio n. 2
0
    def wake(self):
        self.db = database(self.db_params)
        self.woke_at = self.utc_for(datetime.now())
        logging.debug("Woke at: %s", self.woke_at)

        self.process_tasks()
        if not self.expire: 
            threading.Timer(self.wake_interval, self.wake).start()

        self.db.commit()
        self.db.close()
        self.db = None
        self.wakes += 1

        now = datetime.now()
        diff = (now - self.last_status).total_seconds()
        if diff > INTERVAL:
            minutes = (now - self.start_time).total_seconds() / 60
            logging.info("Wakes per minute: %f" % (self.wakes / minutes))
            logging.info("Tasks per minute: %f" % (self.tasks_completed / minutes))
            self.last_status = now