#coding=utf-8 import os import datetime import pandas as pd from LIB.BACKEND import DBManager, Log from LIB.MIDDLE import SignalMonitor from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker import time, datetime import traceback from LIB.MIDDLE.DrivingRange import UpdtFct import pymysql from urllib import parse dbManager = DBManager.DBManager() if __name__ == "__main__": #建立引擎 db_engine = create_engine(str(r"mysql+pymysql://%s:" + '%s' + "@%s/%s") % ('root', 'pengmin', 'localhost', 'qixiangdb')) #连接到qx数据库 db_qx = pymysql.connect( host='rm-bp10j10qy42bzy0q77o.mysql.rds.aliyuncs.com', user='qx_read', password='Qx@123456',#Qx@123456 database='qx_cas', charset='utf8' ) #连接到本地数据库,输出物 db_local = pymysql.connect( host='localhost', user='root', password='pengmin', database='qixiangdb', charset='utf8' ) #调度周期:每天运行一次。 #更新所有sn,连读多日的factor,如果start_date和end_date相隔一天,代表更新start_date的factor。 start_date="2021-07-23" end_date="2021-07-28" UpdtFct.updtAllSnFct(start_date,end_date, db_engine, db_local, db_qx) df_newest = UpdtFct.updtNewestFctTb(db_local, db_engine) #按照日期排序,只保留最近的一天,输出factor_unique_df,方法为replace。 #本函数,每天需要运行一次,用于更新factor。 df_newest.to_sql("tb_sn_factor_newest",con=db_engine,chunksize=10000,\ if_exists='replace',index=False) #调度周期:程序每5分钟运行一次 #更新剩余里程,每5min一次,几秒钟运行结束。 test_time=datetime.datetime.now()#当前系统时间 input_time=datetime.datetime.strftime(test_time,'%Y-%m-%d %H:%M:%S') # input_time='2021-07-29 11:59:00'#手动设定一个时间 #函数每5min调度一次,input_time为当前时间,更新tb_sn_factor_soc_range表格 df_range = UpdtFct.updtVehElecRng(db_qx, db_local, db_engine, input_time) df_range.to_sql("tb_sn_factor_soc_range",con=db_engine,chunksize=10000,\ if_exists='replace',index=False)