app_run.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # -*- coding: utf-8 -*-
  2. # @Time : 2024/6/11
  3. # @Author : 魏志亮
  4. import sys
  5. from os import *
  6. from utils.conf.read_conf import yaml_conf, read_conf
  7. def get_exec_data(run_count=1):
  8. now_run_count = get_now_running_count()
  9. data = None
  10. if now_run_count >= run_count:
  11. trans_print(f"当前有{now_run_count}个任务在执行")
  12. else:
  13. data = get_batch_exec_data()
  14. return data
  15. def run(save_db=True, run_count=1, yaml_config=None, step=0, end=999):
  16. update_timeout_trans_data()
  17. data = get_exec_data(run_count)
  18. if data is None:
  19. trans_print("没有需要执行的任务")
  20. return
  21. exec_process = None
  22. if data['transfer_type'] in ['second', 'minute']:
  23. exec_process = MinSecTrans(data=data, save_db=save_db, yaml_config=yaml_config, step=step, end=end)
  24. if data['transfer_type'] in ['fault', 'warn']:
  25. exec_process = FaultWarnTrans(data=data, save_db=save_db, yaml_config=yaml_config)
  26. if data['transfer_type'] == 'wave':
  27. exec_process = WaveTrans(data['id'], data['wind_farm_code'], data['read_dir'])
  28. if data['transfer_type'] == 'laser':
  29. exec_process = LaserTrans(data['id'], data['wind_farm_code'], data['read_dir'])
  30. if exec_process is None:
  31. raise Exception("没有相应的执行器")
  32. exec_process.run()
  33. if __name__ == '__main__':
  34. env = 'dev'
  35. if len(sys.argv) >= 2:
  36. env = sys.argv[1]
  37. if env.endswith('.yaml'):
  38. conf_path = env
  39. else:
  40. conf_path = path.abspath(f"./conf/etl_config_{env}.yaml")
  41. environ['ETL_CONF'] = conf_path
  42. yaml_config = yaml_conf(conf_path)
  43. environ['env'] = env
  44. run_count = int(read_conf(yaml_config, "run_batch_count", 1))
  45. from utils.log.trans_log import trans_print
  46. from service.trans_conf_service import update_timeout_trans_data, \
  47. get_now_running_count, get_batch_exec_data
  48. from etl.wind_power.fault_warn.FaultWarnTrans import FaultWarnTrans
  49. from etl.wind_power.min_sec.MinSecTrans import MinSecTrans
  50. from etl.wind_power.laser.LaserTrans import LaserTrans
  51. from etl.wind_power.wave.WaveTrans import WaveTrans
  52. trans_print("所有请求参数:", sys.argv, "env:", env, "最大可执行个数:", run_count)
  53. trans_print("配置文件路径:", environ.get("ETL_CONF"))
  54. run(run_count=run_count, yaml_config=yaml_config, step=0)