from typing import List

from apscheduler.schedulers.blocking import BlockingScheduler
from py_jftech import autowired

from api import DataSync
from basic.sp500 import save_sp500


@autowired
def sync(syncs: List[DataSync] = None):
    for s in syncs:
        s.do_sync()


if __name__ == '__main__':
    sync()
    scheduler = BlockingScheduler()
    # 开启定时任务,每日抓取sp500数据
    scheduler.add_job(save_sp500, 'cron', day_of_week='0-6', hour=3, minute=55)
    scheduler.add_job(save_sp500, 'cron', day_of_week='0-6', hour=4, minute=00)
    scheduler.add_job(save_sp500, 'cron', day_of_week='0-6', hour=4, minute=55)
    scheduler.add_job(save_sp500, 'cron', day_of_week='0-6', hour=5, minute=00)
    scheduler.add_job(sync, 'cron', day_of_week='0-6', hour=8, minute=00)
    scheduler.start()