main.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import datetime
  2. import gc
  3. import re
  4. import configparser
  5. import pymysql
  6. import pandas as pd
  7. from multiprocessing import Pool
  8. import json
  9. import os
  10. import traceback
  11. import warnings
  12. from datetime import datetime, timedelta
  13. from apscheduler.schedulers.blocking import BlockingScheduler
  14. from sshtunnel import SSHTunnelForwarder
  15. from ZlwlAlgosCommon.utils.ProUtils import *
  16. from ZlwlAlgosCommon.service.station.StationAlgoService import StationAlgoService
  17. def main():
  18. process_num=1
  19. try:
  20. warnings.filterwarnings("ignore")
  21. dingding_utils = DingdingUtils()
  22. mysqlUtils = MysqlUtils()
  23. file_name = '昨日新增工单.xlsx'
  24. yesterday = datetime.now() - timedelta(days=1)
  25. yesterday_str = yesterday.strftime('%Y-%m-%d')
  26. today_str = datetime.now().strftime('%Y-%m-%d')
  27. if os.path.exists(file_name):
  28. os.remove(file_name)
  29. try:
  30. # 调用算法前的准备工作
  31. today = datetime.now()
  32. today_str = today.strftime('%Y-%m-%d')
  33. logger_main.info(f"process-{process_num}: 配置中间件")
  34. # mysql
  35. APP_KEY = sysUtils.get_cf_param('dingding').get("app_key")
  36. APP_SECRET = sysUtils.get_cf_param('dingding').get("app_secret")
  37. Group_Chat_access_token=sysUtils.get_cf_param('dingding').get("group_chat_access_token")
  38. Group_Chat_access_token_ZK=sysUtils.get_cf_param('dingding').get("group_chat_access_token_zk")
  39. access_token = dingding_utils.get_access_token(APP_KEY,APP_SECRET)
  40. ZK_mysql_algo_params = sysUtils.get_cf_param('mysql-algo-zk')
  41. mysql_engine, mysql_Session= mysqlUtils.get_mysql_engine(ZK_mysql_algo_params)
  42. except Exception as e:
  43. logger_main.error(str(e))
  44. logger_main.error(traceback.format_exc())
  45. try:
  46. # #钉钉群发送消息
  47. media_id_ZK = dingding_utils.upload_file(access_token, file_name)
  48. fileName='昨日新增工单'
  49. dingding_utils.send_file_to_dingGroup(media_id_ZK,fileName,today_str,Group_Chat_access_token_ZK,access_token, 'xlsx','xlsx')
  50. # dingding_utils.send_markdown_to_dingtalk("新增工单",Combined_markdown,Group_Chat_access_token,access_token)
  51. except Exception as e:
  52. logger_main.error('{}运行出错'.format(f'发送数据'))
  53. logger_main.error(str(e))
  54. logger_main.error(traceback.format_exc())
  55. except Exception as e:
  56. logger_main.error(f'process-{process_num}: {e}')
  57. logger_main.error(f'process-{process_num}: {traceback.format_exc()}')
  58. #cleanUtils.clean(mysql_algo_conn, mysql_algo_engine, mysql_iotp_conn, mysql_iotp_engine, kafka_consumer, redis_conn)
  59. if __name__ == '__main__':
  60. # while(True):
  61. # 配置量
  62. cur_env = 'dev' # 设置运行环境
  63. app_path = "/home/wangliming/project/zlwl-algos/" # 设置app绝对路径
  64. log_base_path = f"{os.path.dirname(os.path.abspath(__file__))}/log" # 设置日志路径
  65. app_name = "task_day_1_5" # 应用名
  66. sysUtils = SysUtils(cur_env, app_path)
  67. logger_main = sysUtils.get_logger(app_name, log_base_path)
  68. logger_main.info(f"本次主进程号: {os.getpid()}")
  69. # 读取配置文件 (该部分请不要修改)
  70. # main()
  71. scheduler = BlockingScheduler()
  72. scheduler.add_job(main, 'interval', start_date='2023-08-26 08:00:00', days=1, id='diag_job')
  73. try:
  74. logger_main.info(os.getpid())
  75. scheduler.start()
  76. except Exception as e:
  77. print(str(e))
  78. print(traceback.format_exc())
  79. logger_main.error(str(e))
  80. logger_main.error(traceback.format_exc())