python定时任务_python 定时任务apscheduler

5d99b494eaa36.pngimport os

import apscheduler

from apscheduler.schedulers.background import BackgroundScheduler

from apscheduler.triggers.interval import IntervalTrigger

from apscheduler.triggers.cron import CronTrigger

import logging

import time

class Shelduler:

task_index = 0

wait_index = 0

def __init__(self):

self.scheduler = BackgroundScheduler()

logging.basicConfig(level=logging.ERROR,

format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',

datefmt='%Y-%m-%d %H:%M:%S',

filename='log1.txt',

filemode='a')

def run(self):

print("run init")

scheduler = self.scheduler

mytime = "00:00:00"

times = mytime.split(":")

step = 5

# 间隔5秒钟执行一次

trigger = IntervalTrigger(seconds=step)

scheduler.add_job(self.mytask, trigger)

scheduler.add_listener(self.myListener,

apscheduler.events.EVENT_JOB_EXECUTED | apscheduler.events.EVENT_JOB_ERROR)

trigger = CronTrigger(day_of_week="0-6", hour=int(times[0]), minute=int(times[1]), second=int(times[2]))

scheduler.add_job(self.mytask2, trigger)

scheduler.start()

print('按下 Ctrl+{0} 退出'.format("Break" if os.name !='nt' else 'C'))

try:

# 其他任务 独立的线程执行

while True:

time.sleep(2)

self.wait_index += 1

print("\r" + "waitting" + "..." * self.wait_index, end="OK")

self.task_index += 1

if self.task_index % 10 == 0: # 执行10次 清空屏幕

os.system("cls")

self.task_index = 0

self.wait_index = 0

except (KeyboardInterrupt, SystemExit):

scheduler.shutdown()

print('\n退出任务!')

def myListener(self, ev):

if ev.exception:

logging.info('\n%s error.', str(ev.exception))

else:

print("执行成功")

def mytask(self):

print("\nmy task1")

self.wait_index = 0

def mytask2(self):

print("\nmy task2")

if __name__ == "__main__":

shed = Shelduler()

shed.run()

如果本文对您有所帮助,请支持下本站哦!!!^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值