Добавление планировщика по запуску парсера в 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.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)