import schedule import time import datetime import shutil import redis import urllib.request def queryallrecordsbydate(date: str): print(f'queryallrecordsbydate: {date}') try: response = urllib.request.urlopen(f'http://localhost/queryallrecordsbydate/?querydate={date}') html = response.read().decode('utf-8') #print(html) except urllib.error.URLError as e: print("Error") def queryallrecordsbydatewithtype(date: str): print(f'queryallrecordsbydatewithtype: {date}') try: response = urllib.request.urlopen(f'http://localhost/queryallrecordsbydatewithtype/?querydate={date}&querytype=node') html = response.read().decode('utf-8') #print(html) response = urllib.request.urlopen(f'http://localhost/queryallrecordsbydatewithtype/?querydate={date}&querytype=link') html = response.read().decode('utf-8') #print(html) except urllib.error.URLError as e: print("Error") def queryallrecordsbydateproperty(date: str): print(f'queryallrecordsbydateproperty: {date}') try: node_properties = ['head', 'pressure', 'actualdemand', 'quality'] for property in node_properties: response = urllib.request.urlopen(f'http://localhost/queryallrecordsbydateproperty/?querydate={date}&querytype=node&property={property}') html = response.read().decode('utf-8') #print(html) link_properties = ['flow', 'velocity', 'headloss', 'quality'] for property in link_properties: response = urllib.request.urlopen(f'http://localhost/queryallrecordsbydateproperty/?querydate={date}&querytype=link&property={property}') html = response.read().decode('utf-8') #print(html) except urllib.error.URLError as e: print("Error") def queryallscadarecordsbydate(date: str): print(f'queryallscadarecordsbydate: {date}') try: response = urllib.request.urlopen(f'http://localhost/queryallscadarecordsbydate/?querydate={date}') html = response.read().decode('utf-8') #print(html) except urllib.error.URLError as e: print("Error") def queryallschemeallrecords(date: str): print(f'queryallschemeallrecords: {date}') try: response = urllib.request.urlopen(f'http://localhost/queryallschemeallrecords/?schemetype=burst_Analysis&schemename=testSchema&querydate={date}') html = response.read().decode('utf-8') #print(html) except urllib.error.URLError as e: print("Error") def auto_cache_data(): """ redis_client = redis.Redis(host='localhost', port=6379, db=0) items = ['queryallrecordsbydatewithtype_[DATE]_link'] today = datetime.date.today() print(today) for item in items: prev_day = today - datetime.timedelta(days=1) str_prev_day = prev_day.strftime('%Y-%m-%d') print(str_prev_day) key = item.replace('[DATE]', str_prev_day) if not redis_client.exists(key): query_all_records_by_date_with_type_link(str_prev_day) """ # auto cache data for the last 3 days today = datetime.date.today() for i in range(1, 4): prev_day = today - datetime.timedelta(days=i) str_prev_day = prev_day.strftime('%Y-%m-%d') print(str_prev_day) queryallrecordsbydate(str_prev_day) queryallrecordsbydatewithtype(str_prev_day) queryallrecordsbydateproperty(str_prev_day) queryallscadarecordsbydate(str_prev_day) queryallschemeallrecords(str_prev_day) if __name__ == "__main__": auto_cache_data() # auto run in the midnight schedule.every().day.at("03:00").do(auto_cache_data) while True: schedule.run_pending() time.sleep(1)