python模块:apscheduler 定时器模块
基本案例
#!/usr/bin/env python # -*- encoding: utf-8 -*- ''' @Author: Victor @Contact: @163.com @Date: 2020/9/29 @function: '' ''' import threading from apscheduler import events from apscheduler.events import JobEvent from apscheduler.triggers.cron import CronTrigger from apscheduler.schedulers.blocking import BlockingScheduler from loguru import logger class CalculateData(object): def __init__(self): self.scheduler = BlockingScheduler() def _add(self): # 计算股票数据处理 # 存储写入数据库 logger.info("任务完成") return True def init_job_listener(self, event, name='计算'): if isinstance(event, JobEvent): if event.code == events.EVENT_JOB_EXECUTED: logger.info("{} 任务执行成功 event.job_id={}".format(name, event.job_id)) elif event.code == events.EVENT_JOB_ERROR: logger.error("{} 任务执行失败 event.job_id={}".format(name, event.job_id)) else: pass def _start_run(self): logger.info("任务启动") # 任务回调监控 self.scheduler.add_listener(self.init_job_listener) # 计算数据: 周一 - 周五,15点-18点: 30执行 # tri = CronTrigger(day_of_week='mon-fri', hour='15-18', minute='30', second='00') # self.scheduler.add_job(id='tri_001', func=self._add, args=(), trigger=tri) # 每隔2秒执行一次 self.scheduler.add_job(self._add, 'interval', id='trig_start', seconds=2) self.scheduler.start() def start(self): # 开启线程, 任务为定时器, 加监控 threading_kline = threading.Thread(target=self._start_run, args=()) threading_kline.start() CalculateData().start() # 2020-09-29 19:22:21.366 | INFO | __main__:_start_run:42 - 任务启动 # 2020-09-29 19:22:23.393 | INFO | __main__:_add:27 - 任务完成 # 2020-09-29 19:22:23.394 | INFO | __main__:init_job_listener:34 - 计算 任务执行成功 event.job_id=trig_start # 2020-09-29 19:22:25.395 | INFO | __main__:_add:27 - 任务完成 # 2020-09-29 19:22:25.395 | INFO | __main__:init_job_listener:34 - 计算 任务执行成功 event.job_id=trig_start # 2020-09-29 19:22:27.395 | INFO | __main__:_add:27 - 任务完成 # 2020-09-29 19:22:27.396 | INFO | __main__:init_job_listener:34 - 计算 任务执行成功 event.job_id=trig_start # 2020-09-29 19:22:29.394 | INFO | __main__:_add:27 - 任务完成 # 2020-09-29 19:22:29.395 | INFO | __main__:init_job_listener:34 - 计算 任务执行成功 event.job_id=trig_start # 2020-09-29 19:22:31.395 | INFO | __main__:_add:27 - 任务完成 # 2020-09-29 19:22:31.396 | INFO | __main__:init_job_listener:34 - 计算 任务执行成功 event.job_id=trig_start
https://blog.csdn.net/somezz/article/details/83104368