deploy_6060.py 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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.LeakCurrent import LFPLeakCurrent20210812 as LFPLeakCurrent
  12. from urllib import parse
  13. import pymysql
  14. import dateutil.relativedelta
  15. dbManager = DBManager.DBManager()
  16. if __name__ == "__main__":
  17. # 时间设置
  18. now_time = datetime.datetime.now()
  19. pre_time = now_time + dateutil.relativedelta.relativedelta(weeks=-2)
  20. end_time=datetime.datetime.strftime(now_time,"%Y-%m-%d 09:00:00")
  21. start_time=datetime.datetime.strftime(pre_time,"%Y-%m-%d 09:00:00")
  22. end_time = "2021-08-13 09:00:00"
  23. start_time = "2018-06-01 00:00:00"
  24. # 更新sn列表
  25. host='rm-bp10j10qy42bzy0q7.mysql.rds.aliyuncs.com'
  26. port=3306
  27. db='qixiang_oss'
  28. user='qixiang_oss'
  29. password='Qixiang2021'
  30. conn = pymysql.connect(host=host, port=port, user=user, password=password, database=db)
  31. cursor = conn.cursor()
  32. cursor.execute("select sn, imei from app_device")
  33. res = cursor.fetchall()
  34. df_sn = pd.DataFrame(res, columns=['sn', 'imei'])
  35. df_sn = df_sn.reset_index(drop=True)
  36. conn.close();
  37. # 数据库配置
  38. host = 'rm-bp10j10qy42bzy0q77o.mysql.rds.aliyuncs.com'
  39. port = 3306
  40. user = 'qx_cas'
  41. password = parse.quote_plus('Qx@123456')
  42. database = 'qx_cas'
  43. db_engine = create_engine(
  44. "mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8".format(
  45. user, password, host, port, database
  46. ))
  47. DbSession = sessionmaker(bind=db_engine)
  48. # 日志配置
  49. now_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()).replace(":","_")
  50. log_path = 'log/6060/' + now_str
  51. if not os.path.exists(log_path):
  52. os.makedirs(log_path)
  53. log = Log.Mylog(log_name='leak_current', log_level = 'info')
  54. log.set_file_hl(file_name='{}/info.log'.format(log_path), log_level='info', size=1024* 1024 * 100)
  55. log.set_file_hl(file_name='{}/error.log'.format(log_path), log_level='error', size=1024* 1024 * 100)
  56. logger = log.get_logger()
  57. logger.info("pid is {}".format(os.getpid()))
  58. # SNdata_6060 = pd.read_excel('骑享资产梳理-20210621.xlsx', sheet_name='6060')
  59. # SNnums_6060=SNdata_6060['SN号']
  60. # # SNnums_6060 = ['PK504B00100004019','PK504B00100004029', 'PK504B00100004080', 'PK504B00100004264', 'PK504B10100004331']
  61. # now_time=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  62. # now_time = "2021-08-01 00:00:00" # 定时任务开启时,需要删除改行!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  63. # now_time=datetime.datetime.strptime(now_time,'%Y-%m-%d %H:%M:%S')
  64. # start_time=now_time-datetime.timedelta(days=1000)
  65. # end_time=str(now_time)
  66. # start_time=str(start_time)
  67. for i in range(0, len(df_sn)):
  68. try:
  69. if df_sn.loc[i, 'imei'][6:9] != '660':
  70. continue
  71. sn = df_sn.loc[i, 'sn']
  72. logger.info("6060 SN: {} START!".format(sn))
  73. res = LFPLeakCurrent.cal_LFPLeakCurrent(sn, end_time, start_time)
  74. if not res.empty:
  75. res.columns = ['time', 'sn', 'cell1', 'cell2', 'cell3', 'cell4', 'cell5', 'cell6', 'cell7', 'cell8', 'cell9', 'cell10',
  76. 'cell11', 'cell12', 'cell13', 'cell14', 'cell15', 'cell16', 'cell17', 'cell18', 'cell19', 'cell20']
  77. res.to_sql("consistency_leak_current",con=db_engine, if_exists="append",index=False)
  78. logger.info("6060 SN: {} DONE!".format(sn))
  79. except:
  80. logger.error(traceback.format_exc)
  81. logger.error(u"{} :{},{} 任务运行错误\n".format(sn,start_time,end_time), exc_info=True)