#!/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