python 计时器模块_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

你可能感兴趣的:(python,计时器模块)