python定时任务&轮询

实现定时任务和多线程

import jsonpath
from api.executor_log import ExecutorLogger
import requests
from test.wayne_test2 import login
requests.packages.urllib3.disable_warnings()
from client.env import ENV
requests.packages.urllib3.disable_warnings()
import configparser
log = ExecutorLogger()
s = requests.Session()
import time
from threading import Timer
import timeout_decorator

config=configparser.ConfigParser()

config.read("rule_core.ini")
@login(event='core', username='wayne@wayne.com', password='Qq1234567!', s=s)
def get_rule(event1):
    '''实现业务的脚本'''
    url = ENV.get(event1).get('urls').get('host') + '/api/core/v1/abs/clock/rule?bus=20&loginType=20&clientType=1'
    res = s.post(url, json={}, verify=False)
    log.info(F'获取规则成功--》{res.json()}')
    # 获取时间戳
    data = time.time()
    # 转换成localtime 
    time_local = time.localtime(data)
    dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local)
    config.add_section(F'{dt}')
    config.set(F'{dt}',"rule", F'{res.json()}')

    config.write(open("rule_core.ini", "w"))
    print(res.json())

    return res.json()

# @timeout_decorator.timeout(3600)   # 此方法为超过多少ms停止
def loop_func(func, second):
    '''实现定时任务的脚本'''
    # 每隔second秒执行func函数  sencond对应时间
    while True:
        if time.time() < 1642644003:
            timer = Timer(60, func)
            timer.start()
            timer.join()
        else:
            log.info('流程结束')
            break



try:
    loop_func(get_rule, 1)
except Exception as e:
    print('超时未获取到数据', e)
    # 加raise 会把异常信息捕获到e  并且raise出来
    raise Exception(F'{e}')





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值