Добавление планировщика по запуску парсера в 10 и 11 часов
This commit is contained in:
34
main.py
34
main.py
@@ -1,6 +1,7 @@
|
||||
from fastapi import FastAPI, Request, BackgroundTasks, Query
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from pydantic import BaseModel
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
import logging
|
||||
import subprocess
|
||||
import requests
|
||||
@@ -20,6 +21,9 @@ app = FastAPI(title="Parser API",
|
||||
description="API для запуска парсинга в базу данных",
|
||||
version="1.0")
|
||||
|
||||
# Инициализация планировщика
|
||||
scheduler = AsyncIOScheduler()
|
||||
|
||||
# Настройка логгера
|
||||
logging.basicConfig(filename="app.log", level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -378,6 +382,34 @@ def get_settings():
|
||||
def set_settings(settings: sw.Source):
|
||||
return sw.update_source(settings)
|
||||
|
||||
# Запуск сервера для теста
|
||||
# Функции для автоматического запуска
|
||||
def scheduled_parser_1():
|
||||
"""Планировщик для первого парсера"""
|
||||
print("Запуск планировщика парсера 1")
|
||||
istochnik = "" # пустая строка = текущая дата
|
||||
start_pars_one_istochnik(istochnik.split("."))
|
||||
|
||||
def scheduled_parser_2():
|
||||
"""Планировщик для второго парсера"""
|
||||
print("Запуск планировщика парсера 2")
|
||||
start_pars_two_istochnik()
|
||||
|
||||
@app.on_event("startup")
|
||||
async def start_scheduler():
|
||||
"""Запуск планировщика при старте приложения"""
|
||||
# Парсер 1 - каждый день в 6:00
|
||||
scheduler.add_job(scheduled_parser_1, "cron", hour=10, minute=0)
|
||||
|
||||
# Парсер 2 - каждый день в 7:00
|
||||
scheduler.add_job(scheduled_parser_2, "cron", hour=11, minute=0)
|
||||
|
||||
scheduler.start()
|
||||
print("Планировщик запущен: парсер 1 в 6:00, парсер 2 в 7:00")
|
||||
|
||||
@app.on_event("shutdown")
|
||||
async def stop_scheduler():
|
||||
"""Остановка планировщика при выключении"""
|
||||
scheduler.shutdown()
|
||||
|
||||
# if __name__ == "__main__":
|
||||
# uvicorn.run("main:app", port=8001, reload=True)
|
||||
Reference in New Issue
Block a user