Добавление планировщика по запуску парсера в 10 и 11 часов

This commit is contained in:
2026-02-24 20:28:36 +10:00
parent c89e8d493d
commit df1440d926

34
main.py
View File

@@ -1,6 +1,7 @@
from fastapi import FastAPI, Request, BackgroundTasks, Query from fastapi import FastAPI, Request, BackgroundTasks, Query
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel from pydantic import BaseModel
from apscheduler.schedulers.asyncio import AsyncIOScheduler
import logging import logging
import subprocess import subprocess
import requests import requests
@@ -20,6 +21,9 @@ app = FastAPI(title="Parser API",
description="API для запуска парсинга в базу данных", description="API для запуска парсинга в базу данных",
version="1.0") version="1.0")
# Инициализация планировщика
scheduler = AsyncIOScheduler()
# Настройка логгера # Настройка логгера
logging.basicConfig(filename="app.log", level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") logging.basicConfig(filename="app.log", level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -378,6 +382,34 @@ def get_settings():
def set_settings(settings: sw.Source): def set_settings(settings: sw.Source):
return sw.update_source(settings) 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__": # if __name__ == "__main__":
# uvicorn.run("main:app", port=8001, reload=True) # uvicorn.run("main:app", port=8001, reload=True)