main.py 2.2 KB

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