I have a method that count changes of some domains that I monitor, I need the method to run only once a day so that it counts the changes only once a day. I can't find good implementation for timer on python. Any suggestions?
def count_changes(self):
stamp = datetime.now()
upper_limit = stamp - timedelta(days=7)
lower_limit = stamp - timedelta(days=2)
nameservers = models.NameServer.query.all()
nameservers = [item.name for item in nameservers]
domains = models.Domain.query.all()
domains = [item.name for item in domains]
changes = []
upper_limit_changes = []
lower_limit_changes = []
for ns in nameservers:
for domain in domains:
scans = models.Scan.query.filter_by(nameserver=ns,
domain=domain).all()
upper_limit_changes.extend(self.get_changes(scans, upper_limit))
lower_limit_changes.extend(self.get_changes(scans, lower_limit))
return upper_limit_changes, lower_limit_changes