from hub import Global, methods

import os


class JobManage(object):
    """"""

    # --- 接口认证信息 ---
    # username = '500A7062'
    # password = '198797#cjhxbin'

    @classmethod
    def run(cls):
        """启动全部任务"""

        # --- test ---
        # Global.aps.create_job(func=cls.job101, trigger='interval', seconds=3)  # 循环测试
        # Global.aps.create_job(func=cls.job101, trigger='date', run_date='2022-02-23 18:54:00')  # 定时测试
        # Global.aps.create_job(func=cls.job301, trigger='interval', seconds=60)  # 循环测试
        # Global.aps.create_job(func=cls.job20102, trigger='date', run_date='2022-07-28 17:15:30')  # 定时测试
        # Global.aps.create_job(func=cls.job101, trigger='cron', hour=22)  # 每天晚10点 
        # Global.aps.create_job(func=cls.job101, trigger='interval', seconds=60)  # 每1分钟 
        # Global.aps.create_job(func=cls.job101, trigger='interval', seconds=300)  # 每5分钟 

        # --- release ---
        Global.aps.create_job(func=cls.job101, trigger='interval', seconds=3600)  # 每1小时 

    @classmethod
    def end(cls):
        """暂停全部任务"""
        Global.aps.pause_all()

    @staticmethod
    def job101():
        """
        每1小时清理7*24小时之前的日志
        """
        # --- log ---
        methods.debug_log("JobManage|49", f"------------------------------ start job101")

        # --- get log_file_uuid_list ---
        log_file_list = methods.get_file_path_list(Global.save_dir)
        log_file_name_list = [i.split('\\')[-1] for i in log_file_list]
        log_file_uuid_list = [i.split('.')[0] for i in log_file_name_list]

        # --- test ---
        for log_file_uuid in log_file_uuid_list:

            # --- check ---
            file_path = os.path.join(Global.save_dir, f"{log_file_uuid}.log")
            item = Global.mdb.get_one_by_id('UserWorkRecordList', log_file_uuid)
            if not item:
                methods.remove_file(file_path)

            # --- check ---
            now_at = methods.now_ts()
            if now_at > item.get('end_at') + 86400 * 1:
                methods.remove_file(file_path)