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

posted @ 2020-09-29 19:24  Adamanter  阅读(252)  评论(0)    收藏  举报