"""
    讲解apscheduler的使用

    参考博客
    https://blog.csdn.net/somezz/article/details/83104368
    https://www.jianshu.com/p/9d6b277c4a7d

    安装apscheduler: pip install apscheduler
"""
from datetime import datetime
import time
# import apscheduler
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.schedulers.background import BackgroundScheduler

def func1():
    print(f"hello world {datetime.now()}")

def func2(a, b, c):
    print(f"每三秒钟调度一次:{datetime.now()}, {a}, {b}, {c}")

def get_kline_data(symbol, timeframe="1h"):
    print(f"get exchange {symbol} {timeframe} kline data")


if __name__ == '__main__':

    # while True:
    #     print(f"当前时间{datetime.now()}")
    #     time.sleep(3)
    # scheduler = BlockingScheduler()  #

    # scheduler = BackgroundScheduler()
    # scheduler.add_job(func1, trigger="interval", seconds=3)  # 间隔三秒
    # scheduler.add_job(func2, trigger="cron", second='*/3', kwargs={'a': 3, 'c': 5, 'b': 4})  # 每三秒调度一次 args=(3, 4, 5)
    # scheduler.start()
    #
    # print("cccccc")
    #
    # while True:
    #     time.sleep(0.1)

    scheduler = BackgroundScheduler()
    scheduler.add_job(get_kline_data, trigger="cron", hour='*/4', kwargs={'symbol': 'BTCUSDT'})  # 每一个小时调度一次
    scheduler.add_job(get_kline_data, trigger="cron", minute='*/15', kwargs={'symbol': 'BTCUSDT', 'timeframe': "1m"})
    scheduler.add_job(get_kline_data, trigger="cron", second='*/3', kwargs={'symbol': 'BTCUSDT', 'timeframe': "1m"}) # 每一个小时调度一次
    # 14: 35
    scheduler.start()

    while True:
        time.sleep(0.01)



# def fun():
#     print("hello world.", datetime.now())
#
# def fun1():
#     print("hello world.111111", datetime.now())
#
# if __name__ == '__main__':
#     scheduler = BlockingScheduler()
#     scheduler.add_job(fun, trigger='interval', seconds=3)
#     scheduler.add_job(fun1, trigger='cron', second='*/3')
#     scheduler.start()