Используя Flask, SQLAlchemy, я делаю сайт и имею функцию, которая агрегирует цены на акции. Я хотел бы сохранить данные в Postgres, используя APScheduler. Но я также хочу, чтобы он определил, где он остановился.
Поскольку сервер находится только на локальной машине, он не всегда работает. Если я выключу его в середине недели и снова включу в понедельник, я бы хотел, чтобы он получал и сохранял данные из wed ~ now.
Из APScheduler do c, я понял Пока сервер всегда работает, эта функция должна работать.
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
def save_stock_price():
"""save stock prices to psql db"""
tickers = all_tickers()
stock_prices = fetch_all(tickers)
data = StockPrice(data=stock_prices)
try:
data.save() # runs db.session.add(self), db.session.commit()
except (KeyError, RuntimeError):
pass
def schedule_stock_price(scheduler):
"""1600, weekdays"""
scheduler.add_job(id='Scheduled task3',
func=save_stock_price,
trigger='cron',
day_of_week='mon-fri',
hour='16',
minute=1,
timezone='EST'
)
try:
scheduler.start()
except (KeyboardInterrupt, SystemExit):
pass
schedule_stock_price(scheduler)
Но она настроена на работу в 16:01 один раз в день в будние дни.
Как включить его забрать с того места, где он остановился и заполнить пробел?