#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019-10-21 11:06
# @Author  : Lemon
# @File    : sched.py
# @Software: PyCharm
import datetime

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.executors.pool import ThreadPoolExecutor

scheduler = BackgroundScheduler(
    executors={
        'default': ThreadPoolExecutor(300),
    },
    job_defaults={
        'coalesce': True,
        'misfire_grace_time': 30,
    }
)

def start():
    scheduler.start()


def add_task(func, after_delay: int, s='minutes', job_id=None, args=(),replace_existing=False):
    job = None
    if s == 'minutes':
        job = scheduler.add_job(func,
                                id=job_id,
                                args=args,
                                next_run_time=datetime.datetime.now() + datetime.timedelta(minutes=after_delay),
                                replace_existing=replace_existing)
    elif s == 'seconds':
        job = scheduler.add_job(func,
                                id=job_id,
                                args=args,
                                next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=after_delay),
                                replace_existing=replace_existing)
    return job