Browse Source

增加task判断机制,使得多进程不同时启动

Eric412V 3 years ago
parent
commit
7ce28e13ae
2 changed files with 23 additions and 18 deletions
  1. 23 18
      LIB/MIDDLE/SaftyCenter/DataDiag_Static/main.py
  2. BIN
      low_soc_bat_list.xlsx

+ 23 - 18
LIB/MIDDLE/SaftyCenter/DataDiag_Static/main.py

@@ -17,13 +17,14 @@ from DiagDataMerge import DiagDataMerge
 
 #...................................电池包电芯安全诊断函数......................................................................................................................
 def diag_cal():
+    task_on=1
     global SNnums
     global df_Diag_Ram
     global start
     #..................................设置时间..........................................................  
     start=time.time()
     end_time=datetime.datetime.now()
-    start_time=end_time-datetime.timedelta(seconds=900)#15分钟跑一次,一次取15分钟数据
+    start_time=end_time-datetime.timedelta(days=1)#10分钟跑一次,一次取10分钟数据
     start_time=start_time.strftime('%Y-%m-%d %H:%M:%S')
     end_time=end_time.strftime('%Y-%m-%d %H:%M:%S')
 
@@ -77,6 +78,10 @@ def diag_cal():
             df_OprtnSta=DBRead.getdata('qrcode','status', tablename=tablename1, sn=sn, timename='', st='', sp='',factory='')#取最后一条运营状态
 
 
+
+
+
+
         #电池诊断.....................................................................................................................................................................
         CellFltInfo=DataFrame(columns=['start_time', 'end_time', 'product_id', 'code', 'level', 'info','advice'])
         df_Diag_Ram_sn = df_Diag_Ram.loc[df_Diag_Ram['product_id']==sn]#历史故障
@@ -92,15 +97,10 @@ def diag_cal():
             df_Diag_Batdiag_update_xq=DataFrame(columns=['start_time','end_time','product_id','code','level','info','advice','Batpos'])
             df_Diag_Batdiag_update=DataFrame(columns=['start_time','end_time','product_id','code','level','info','advice','Batpos'])
         df_Diag_Ram,df_Diag_Ram_add,df_Diag_Ram_Update=DiagDataMerge.DetaMerge(df_Diag_Ram_sn,df_Diag_Batdiag_update_xq,df_Diag_Batdiag_update,df_OprtnSta,df_Diag_Ram_sn_else)
-        if len(df_Diag_Ram) or len(df_Diag_Ram_add) or len(df_Diag_Ram_Update):
-            print('------------------总计--------------------------')
-            print(df_Diag_Ram)
-            print('------------------新增--------------------------')
-            print(df_Diag_Ram_add)
-            print('-------------------更新-------------------------')
-            print(df_Diag_Ram_Update)
+    task_on=0
 #.................................统计程序...............................
 def DaTa_Sta_Week_Task():
+    task_on=1
     all_period_fault_info=DataFrame(columns=['factory','week','level1_count','level2_count','level3_count','level4_count','level5_count','solve_rate'])
     #............................获取数据................................
     toweek='Week'+time.strftime('%W')
@@ -131,9 +131,10 @@ def DaTa_Sta_Week_Task():
     all_period_fault_info.loc[0,'week']=toweek
     all_period_fault_info.loc[0,'solve_rate']=FltAlarmInfo.loc[0,'OprationManageRate']
     all_period_fault_info.fillna(0,inplace=False)
-    all_period_fault_info.to_csv('all_period_fault_info.csv')
+    all_period_fault_info.to_excel('all_period_fault_info.xlsx')
+    task_on=0
 def DaTa_Sta_Minutes_Task():
-
+    task_on=1
     #............................获取数据................................
     host='172.16.121.236'
     port=3306
@@ -181,9 +182,9 @@ def DaTa_Sta_Minutes_Task():
     FltAlarmInfo,Celltype=DataSta.SaftyWarningSta(df_fltinfo,start_time,end_time)
     SatftyCount=DataSta.SftyWrngClsfy(df_fltinfo)
     MaxAccumAh,TotalAccumAh,MaxCycle,MaxRunningHour,TotalRunHour=DataSta.AccumInfo(df_last_accum,df_FirstDataTime,end_time)
-    df_Diag_Ram_Pos=DataSta.FltBatPosition(df_last_pos,df_Diag_Ram)
+    all_location_info=DataSta.FltBatPosition(df_last_pos,df_Diag_Ram)
 
-    all_statistic_info=DataFrame(columns=['factory','total_alarm','alarm_total_today','alarm_not_close_today','alarm_close_today','alarm_uregent_total_today','alarm_uregent_close_today','alarm_uregent_not_close_today','alarm_close_total','run_time_total','dischrg_total','odo_total','max_dischrg_one','max_runtime_one','max_cycle_one','max_odo_one','alarm_total','cell_type','cell_type_count','cell_safety_risk_count','data_safety_risk_count','status_safety_risk_count','hv_safety_risk_count','system_safety_risk_count','sample_safety_risk_count','controller_safety_risk_count','design_safety_risk_count'])
+    all_statistic_info=DataFrame(columns=['factory','total_alarm','alarm_total_today','alarm_not_close_today','alarm_close_today','alarm_uregent_total_today','alarm_uregent_close_today','alarm_uregent_not_close_today','alarm_close_total','run_time_total','dischrg_total','odo_total','max_dischrg_one','max_runtime_one','max_cycle_one','max_odo_one','alarm_close_total','alarm_total','cell_type','cell_type_count','cell_safety_risk_count','data_safety_risk_count','status_safety_risk_count','hv_safety_risk_count','system_safety_risk_count','sample_safety_risk_count','controller_safety_risk_count','design_safety_risk_count'])
     all_statistic_info.loc[0,'factory']='骑享'
     all_statistic_info.loc[0,'total_alarm']=FltAlarmInfo.loc[0,'SftyPlt_Data_Total']
     all_statistic_info.loc[0,'alarm_total_today']=FltAlarmInfo.loc[0,'SftyPlt_Data_day']
@@ -216,19 +217,21 @@ def DaTa_Sta_Minutes_Task():
     all_statistic_info.loc[0,'sample_safety_risk_count']=SatftyCount.loc[0,'SamplingSatyCount']
     all_statistic_info.loc[0,'controller_safety_risk_count']=SatftyCount.loc[0,'CtrlSaftyCodeCount']
     all_statistic_info.loc[0,'design_safety_risk_count']=SatftyCount.loc[0,'DsnSaftyCodeCount']
-    all_statistic_info.to_csv('all_statistic_info.csv')
+    all_statistic_info.to_excel('all_statistic_info.xlsx')
 
     end=time.time()
     print(end-start)
-
+    task_on=0
 
 
 
 #...............................................主函数.......................................................................................................................
 if __name__ == "__main__":
     global SNnums
+    global task_on
     
-    excelpath=r'D:\Platform\platform_python\data_analyze_platform\USER\sxq\SaftyCenter_CODE_V1_1\sn-20210903.xlsx'
+    task_on=0
+    excelpath=r'D:\ZLWORK\code\data_analyze_platform\USER\eric\SaftyCenter_CODE_V1\sn-20210903.xlsx'
     SNdata_6060 = pd.read_excel(excelpath, sheet_name='科易6060')
     SNdata_6040 = pd.read_excel(excelpath, sheet_name='科易6040')
     SNdata_4840 = pd.read_excel(excelpath, sheet_name='科易4840')
@@ -265,9 +268,11 @@ if __name__ == "__main__":
 
     #定时任务.......................................................................................................................................................................
     scheduler = BlockingScheduler()
-    scheduler.add_job(diag_cal, 'interval', seconds=900, id='diag_job')
-    scheduler.add_job(DaTa_Sta_Week_Task, 'interval',start_date='2021-11-15 08:00:00', days=7, id='Week_Task')
-    scheduler.add_job(DaTa_Sta_Minutes_Task, 'interval', seconds=180, id='Minutes_Task')
+
+    if task_on==0:
+        scheduler.add_job(DaTa_Sta_Week_Task, 'interval', days=7, id='Week_Task')
+        scheduler.add_job(diag_cal, 'interval', seconds=600, id='diag_job')
+        scheduler.add_job(DaTa_Sta_Minutes_Task, 'interval', seconds=180, id='Hour_Task')
 
     try:  
         scheduler.start()

BIN
low_soc_bat_list.xlsx