|
@@ -16,9 +16,8 @@ from utils.zip.unzip import unzip, unrar, get_desc_path
|
|
|
|
|
|
class WindFarms(object):
|
|
|
|
|
|
- def __init__(self, name, batch_no=None, field_code=None, params: TranseParam = None, wind_full_name=None,
|
|
|
- schedule_exec=True):
|
|
|
- self.name = name
|
|
|
+ def __init__(self, batch_no=None, field_code=None, params: TranseParam = None, wind_full_name=None,
|
|
|
+ save_db=True):
|
|
|
self.batch_no = batch_no
|
|
|
self.field_code = field_code
|
|
|
self.wind_full_name = wind_full_name
|
|
@@ -28,7 +27,7 @@ class WindFarms(object):
|
|
|
self.wind_col_trans = get_all_wind(self.field_code)
|
|
|
self.batch_count = 50000
|
|
|
self.save_path = None
|
|
|
- self.schedule_exec = schedule_exec
|
|
|
+ self.save_db = save_db
|
|
|
self.lock = multiprocessing.Manager().Lock()
|
|
|
self.statistics_map = multiprocessing.Manager().dict()
|
|
|
|
|
@@ -38,7 +37,7 @@ class WindFarms(object):
|
|
|
|
|
|
if read_path.find(self.wind_full_name) == -1:
|
|
|
message = "读取路径与配置路径不匹配:" + self.trans_param.read_path + ",配置文件为:" + self.wind_full_name
|
|
|
- update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.schedule_exec)
|
|
|
+ update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.save_db)
|
|
|
raise ValueError(message)
|
|
|
|
|
|
self.save_path = os.path.join(read_path[0:read_path.find(self.wind_full_name)], self.wind_full_name, "清理数据")
|
|
@@ -300,7 +299,7 @@ class WindFarms(object):
|
|
|
except Exception as e:
|
|
|
logger.exception(e)
|
|
|
message = "读取文件列表错误:" + self.trans_param.read_path + ",系统返回错误:" + str(e)
|
|
|
- update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.schedule_exec)
|
|
|
+ update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.save_db)
|
|
|
raise e
|
|
|
return all_files
|
|
|
|
|
@@ -338,7 +337,7 @@ class WindFarms(object):
|
|
|
except Exception as e:
|
|
|
logger.exception(e)
|
|
|
message = "合并列出现错误:" + str(e)
|
|
|
- update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.schedule_exec)
|
|
|
+ update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.save_db)
|
|
|
raise e
|
|
|
|
|
|
else:
|
|
@@ -353,7 +352,7 @@ class WindFarms(object):
|
|
|
logger.exception(e)
|
|
|
message = "整理临时文件,系统返回错误:" + str(e)
|
|
|
update_trans_status_error(self.batch_no, self.trans_param.read_type, message,
|
|
|
- self.schedule_exec)
|
|
|
+ self.save_db)
|
|
|
raise e
|
|
|
|
|
|
def mutiprocessing_to_save_file(self):
|
|
@@ -367,7 +366,7 @@ class WindFarms(object):
|
|
|
except Exception as e:
|
|
|
logger.exception(e)
|
|
|
message = "保存文件错误,系统返回错误:" + str(e)
|
|
|
- update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.schedule_exec)
|
|
|
+ update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.save_db)
|
|
|
raise e
|
|
|
|
|
|
trans_print("结束保存到excel文件")
|
|
@@ -387,7 +386,7 @@ class WindFarms(object):
|
|
|
except Exception as e:
|
|
|
logger.exception(e)
|
|
|
message = "保存到数据库错误,系统返回错误:" + str(e)
|
|
|
- update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.schedule_exec)
|
|
|
+ update_trans_status_error(self.batch_no, self.trans_param.read_type, message, self.save_db)
|
|
|
raise e
|
|
|
trans_print("结束保存到数据库文件")
|
|
|
|
|
@@ -408,10 +407,7 @@ class WindFarms(object):
|
|
|
|
|
|
def delete_tmp_files(self):
|
|
|
trans_print("开始删除临时文件夹")
|
|
|
- if os.path.exists(self.get_excel_tmp_path()):
|
|
|
- shutil.rmtree(self.get_excel_tmp_path())
|
|
|
- if os.path.exists(self.get_read_tmp_path()):
|
|
|
- shutil.rmtree(self.get_read_tmp_path())
|
|
|
+
|
|
|
if os.path.exists(self.get_save_tmp_path()):
|
|
|
shutil.rmtree(self.get_save_tmp_path())
|
|
|
|
|
@@ -424,9 +420,9 @@ class WindFarms(object):
|
|
|
|
|
|
def run(self, step=0, end=3):
|
|
|
begin = datetime.datetime.now()
|
|
|
- trans_print("开始执行", self.name, self.trans_param.read_type)
|
|
|
+ trans_print("开始执行")
|
|
|
|
|
|
- update_trans_status_running(self.batch_no, self.trans_param.read_type, self.schedule_exec)
|
|
|
+ update_trans_status_running(self.batch_no, self.trans_param.read_type, self.save_db)
|
|
|
|
|
|
if step <= 0 and end >= 0:
|
|
|
tmp_begin = datetime.datetime.now()
|
|
@@ -434,7 +430,7 @@ class WindFarms(object):
|
|
|
self.delete_batch_files()
|
|
|
self.delete_batch_db()
|
|
|
|
|
|
- self.params_valid([self.name, self.batch_no, self.field_code, self.save_path, self.trans_param.read_type,
|
|
|
+ self.params_valid([self.batch_no, self.field_code, self.save_path, self.trans_param.read_type,
|
|
|
self.trans_param.read_path, self.wind_full_name])
|
|
|
|
|
|
if self.trans_param.resolve_col_prefix:
|
|
@@ -477,17 +473,18 @@ class WindFarms(object):
|
|
|
str(datetime.datetime.now() - begin))
|
|
|
|
|
|
if step <= 4 and end >= 4:
|
|
|
- tmp_begin = datetime.datetime.now()
|
|
|
- trans_print("开始保存到数据库")
|
|
|
- self.mutiprocessing_to_save_db()
|
|
|
- trans_print("保存到数据库结束,耗时:", str(datetime.datetime.now() - tmp_begin), ",总耗时:",
|
|
|
- str(datetime.datetime.now() - begin))
|
|
|
+ if self.save_db:
|
|
|
+ trans_print("开始保存到数据库")
|
|
|
+ tmp_begin = datetime.datetime.now()
|
|
|
+ self.mutiprocessing_to_save_db()
|
|
|
+ trans_print("保存到数据库结束,耗时:", str(datetime.datetime.now() - tmp_begin), ",总耗时:",
|
|
|
+ str(datetime.datetime.now() - begin))
|
|
|
# 如果end==0 则说明只是进行了验证
|
|
|
if end != 0:
|
|
|
update_trans_status_success(self.batch_no, self.trans_param.read_type,
|
|
|
- len(read_excel_files(self.get_read_tmp_path())), self.schedule_exec)
|
|
|
-
|
|
|
- trans_print("开始执行", self.name, self.trans_param.read_type, ",,总耗时:",
|
|
|
- str(datetime.datetime.now() - begin))
|
|
|
+ len(read_excel_files(self.get_read_tmp_path())), self.save_db)
|
|
|
|
|
|
self.delete_tmp_files()
|
|
|
+
|
|
|
+ trans_print("结束执行", self.trans_param.read_type, ",总耗时:",
|
|
|
+ str(datetime.datetime.now() - begin))
|